【发布时间】:2019-06-06 15:45:03
【问题描述】:
如何使用 boto3 将触发器 s3 存储桶添加到 lambda 函数,然后我想将该 lambda 函数附加到使用编程方式(boto3)动态创建的 s3 存储桶
【问题讨论】:
-
我也想给那个桶添加后缀
标签: python-2.7 amazon-web-services amazon-s3 aws-lambda aws-sdk
如何使用 boto3 将触发器 s3 存储桶添加到 lambda 函数,然后我想将该 lambda 函数附加到使用编程方式(boto3)动态创建的 s3 存储桶
【问题讨论】:
标签: python-2.7 amazon-web-services amazon-s3 aws-lambda aws-sdk
这对我有用:
client = boto3.client(
's3',
aws_access_key_id=AWSAccessKeyID,
aws_secret_access_key=AWSSecretAccessKey)
response = client.put_bucket_notification_configuration(
Bucket=bucketName,
NotificationConfiguration= {'LambdaFunctionConfigurations':[{'LambdaFunctionArn': '<MyLambdaFunctionARN>', 'Events': ['s3:ObjectCreated:*']}]})
【讨论】:
这个问题的完整答案是:
在 lambda 客户端启动的功能:
response1 = lambda1.add_permission(FunctionName='put*your*lambda*arn*here',
StatementId='response2-id-2',
Action='lambda:InvokeFunction',
Principal='s3.amazonaws.com',
SourceArn='put*your*s3*bucket*arn*here'
)
response2 = lambda1.get_policy(FunctionName='put*your*lambda*arn*here')
在 s3 存储桶上启动的函数:
response3 = s3.put_bucket_notification_configuration(
Bucket='put*your*bucket-name*here',
NotificationConfiguration= {'LambdaFunctionConfigurations':[{'LambdaFunctionArn': 'put*your*lambda*arn*here', 'Events': ['s3:ObjectCreated:*']}]})
您的 s3 触发器将附加到您的 lambda。
【讨论】:
我遵循的三个步骤 1) 使用 boto3 连接到 aws lambda 使用 add_permission API 2)也应用了get_policy 3)使用boto资源连接到S3以配置BucketNotification API,放入LambdaFunctionConfigurations
【讨论】: