【发布时间】:2018-01-16 05:39:34
【问题描述】:
我很好奇我们是否可以通过编程方式在 AWS S3 存储桶上创建触发器?
Given 是一个 S3-Bucket 和一个 AWS Lambda 函数。 AWS Lambda 函数是按 CLI 创建的,可以随时使用基于 CLI 的命令更新/重新创建。
aws lambda create-function \
--region us-east-1 \
--function-name encodeVideo \
--zip-file fileb:///tmp/encode_video.zip \
--role $LAMBDA_ROLE_ARN \
--handler encode_video.handler \
--runtime nodejs6.10 \
--timeout 10 \
--memory-size 1024
aws lambda add-permission \
--function-name encodeVideo \
--region us-east-1 \
--statement-id some-unique-id \
--action "lambda:InvokeFunction" \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::**** \
--source-account ***********
现在我想配置一个 S3 存储桶,它会在创建的每个新对象上自动调用 Lambda 函数。
现在我在 Web 浏览器的 AWS 控制台中执行此操作,如屏幕截图所示。但我希望能够使用 CLI 命令设置整个场景。我该怎么做?
我发现它需要这样的东西:
aws s3api put-bucket-notification-configuration --region us-east-1 \
--bucket **** \
--notification-configuration file://encodeVideoConfiguration.json
但我不知道 encodeVideoConfiguration.json 的内容应该是什么?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda aws-sdk aws-cli