All Projects → QuinnyPig → pinboard-backup

QuinnyPig / pinboard-backup

Licence: MIT License
This backs up Pinboard bookmarks to DynamoDB.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pinboard-backup

raven-python-lambda
Sentry/Raven SDK Integration For AWS Lambda (python) and Serverless
Stars: ✭ 48 (+182.35%)
Mutual labels:  lambda
shim
HTTP Handler shim for Go projects running on AWS Lambda
Stars: ✭ 64 (+276.47%)
Mutual labels:  lambda
CloudWatch2S3
Logging infrastructure for exporting all CloudWatch logs from multiple accounts to a single S3 bucket
Stars: ✭ 31 (+82.35%)
Mutual labels:  lambda
iopipe-java
AWS Lambda telemetry for Java
Stars: ✭ 17 (+0%)
Mutual labels:  lambda
api-gateway-v2-to-wsgi
translation from the aws api gateway v2.0 lambda event to wsgi
Stars: ✭ 26 (+52.94%)
Mutual labels:  lambda
pinboard-bookmarks-to-chrome
A Chrome extension for displaying bookmarks from Pinboard in the Bookmarks Bar.
Stars: ✭ 20 (+17.65%)
Mutual labels:  pinboard
sqs-to-lambda-async
Process SQS messages with Lambda, asynchronously
Stars: ✭ 27 (+58.82%)
Mutual labels:  lambda
super-serverless-sample
Backend serverless que simula o sistema de votação do BBB
Stars: ✭ 30 (+76.47%)
Mutual labels:  lambda
tts
📝 🔉 A simple text-to-speech tool. Converts your text to speech with any of Streamlab's voices. Frontend built with GatsbyJS, backend is serverless Node.js
Stars: ✭ 133 (+682.35%)
Mutual labels:  lambda
scelta
(experimental) Syntactic sugar for variant and optional types.
Stars: ✭ 140 (+723.53%)
Mutual labels:  lambda
claudia-local-api
Command line utility to launch Express local API for claudia-api-builder. Test drive your lambda functions before deployment (https://www.npmjs.com/package/claudia-local-api)
Stars: ✭ 15 (-11.76%)
Mutual labels:  lambda
aws-lambda-http-check
Lambda function to check http endpoint wrapped in serverless project
Stars: ✭ 30 (+76.47%)
Mutual labels:  lambda
serverless-ts-template
Serverless Typescript Template
Stars: ✭ 13 (-23.53%)
Mutual labels:  lambda
s3-db
Document DB API for AWS S3
Stars: ✭ 97 (+470.59%)
Mutual labels:  lambda
aws-serverless-fullstack-swift-apple-carplay-example
This application demonstrates a full-stack Apple CarPlay app that uses Swift for both the UI and the backend services in AWS. The app accesses Lambda functions written in Swift and deployed from Docker images. The app accesses Amazon Location Service and a 3rd party weather api to display information in the vicinity of the user.
Stars: ✭ 84 (+394.12%)
Mutual labels:  lambda
fn.el
Concise anonymous functions for Emacs Lisp
Stars: ✭ 26 (+52.94%)
Mutual labels:  lambda
amazon-kinesis-archiver
An AWS Lambda module and node.js library to facilitate Amazon Kinesis archival and replay
Stars: ✭ 29 (+70.59%)
Mutual labels:  lambda
terraform-provider-bless
Terraform provider to automate the creation of BLESS deployments
Stars: ✭ 12 (-29.41%)
Mutual labels:  lambda
linqjs
use linq and lambda in javascript on es6, can use linq function in an Object or an Array or a String value | 一个方便对数组、字典、树形数据进行操作、筛选等操作的工具库
Stars: ✭ 17 (+0%)
Mutual labels:  lambda
node-lambda-babel-template
A minimal template for an ES2015+ Node.js app running on AWS Lambda (w/ babel and webpack).
Stars: ✭ 40 (+135.29%)
Mutual labels:  lambda

Pinboard Backup to DynamoDB via Lambda Function

This is a script that I use in the curation of Last Week in AWS. It will require tweaking for other purposes; in its current form it's gentle on the Pinboard API. Beating it to death with massive requests is a great way to enrage an already kind-yet-volatile man who underprices his service. Tread carefully.

Architecture Diagram It currently grabs all Pinboard bookmarks that are tagged with current.

In DynamoDB, the current tag is replaced with a number that's retrieved from the contents of an S3 object.

If the description field is empty, the string "empty" will be used in its place.

It expects all current tagged bookmarks to have a second tag: community, aws, tools, sponsor, or tip. These tags are converted to booleans, true for the attribute with the tag name.

Lastly, it queries the DynamoDB table for the current issue, and deletes anything that wasn't updated within the last 350 seconds. This is how I ensure that Pinboard can remain my source of truth for links.

Note that there is a failure mode wherein the Pinboard API can return bad data that overwrites existing good data. For that reason I advise enabling DynamoDB backups on the table. Given that I generate new issues weekly, the 30 day retention is more than sufficient for my needs-- and the Pinboard API generally doesn't do that.

Prerequisites

A DynamoDB table. An S3 object containing a number. A Python environment.

Should you be running this from within an AWS Lambda function, indicate so with an environment variable of INSIDE_LAMBDA set to True. An Environment variable called PINBOARD_TOKEN should contain your Pinboard API token. If within a Lambda function, this is expected to be KMS encrypted. Don't store access keys in plaintext; it's just not smart.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].