setup: export EAGER_SERVICE_LOADING=1 \ SERVICES=lambda,ssm,kms \ LAMBDA_EXECUTOR=docker \ AWS_ACCESS_KEY_ID=test \ AWS_SECRET_ACCESS_KEY=test dockerd & FILESYSTEM_ROOT=./.cache/localstack/volume localstack start & zip -r handler.zip ./* awslocal lambda create-function \ --function-name rss-nostr-lambda \ --runtime nodejs20.x \ --timeout 900 \ --memory-size 1024 \ --zip-file fileb://handler.zip \ --handler index.handler \ --role arn:aws:iam::000000000000:role/lambda-role \ --region us-east-1 awslocal ssm put-parameter \ --name /rss-nostr-lambda/last-run-time \ --value "2023-11-23T14:46:56Z" \ --type "String" \ --overwrite awslocal ssm put-parameter \ --name /rss-nostr-lambda/nsec \ --value "nsec1azwx0ajvjquay870m69vxxmkf7prxekdj58fq92yulvt2l02zwnsmzt5vf" \ --type "SecureString" \ --overwrite rm handler.zip invoke: awslocal lambda invoke \ --region us-east-1 \ --function-name rss-nostr-lambda \ --cli-binary-format raw-in-base64-out \ --payload '{"feedUrl":"https://nitter.1d4.us/culturaltutor/rss","nostrNsecParam":"/rss-nostr-lambda/nsec","lastRunTimeParam":"/rss-nostr-lambda/last-run-time"}' \ response.json invoke-dryrun: awslocal lambda invoke \ --region us-east-1 \ --function-name rss-nostr-lambda \ --cli-binary-format raw-in-base64-out \ --payload '{"dryRun":true,"feedUrl":"https://nitter.1d4.us/culturaltutor/rss","nostrNsecParam":"/rss-nostr-lambda/nsec","lastRunTimeParam":"/rss-nostr-lambda/last-run-time"}' \ response.json recreate: zip -r handler.zip ./* unset PYTHONPATH awslocal lambda update-function-code \ --function-name rss-nostr-lambda \ --zip-file fileb://handler.zip rm handler.zip cleanup: awslocal lambda delete-function \ --function-name rss-nostr-lambda