简体   繁体   English

如何将触发器s3存储桶动态添加到lambda函数(python boto3 API)

[英]how to add the trigger s3 bucket to lambda function dynamically(python boto3 API)

如何使用boto3将触发器s3存储桶添加到lambda函数中,然后我想将该lambda函数附加到使用编程方式(boto3)动态创建的s3存储桶中

我遵循的三个步骤1)使用boto3使用add_permission API连接到aws lambda 2)还应用了get_policy 3)使用boto资源连接到S3以配置BucketNotification API,输入LambdaFunctionConfigurations

This worked for me: 这为我工作:

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:*']}]})

The complete answer for this question with the source code is: 这个问题的完整答案和源代码是:

Functions to initiate at lambda client: 在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')

Function to initiate at the s3 bucket: 在s3存储桶上启动的功能:

response3 = s3.put_bucket_notification_configuration(
                            Bucket='put*your*bucket-name*here',
                            NotificationConfiguration= {'LambdaFunctionConfigurations':[{'LambdaFunctionArn': 'put*your*lambda*arn*here', 'Events': ['s3:ObjectCreated:*']}]})

Your s3 trigger will be attached to you lambda. 您的s3触发器将附加到您的lambda。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM