【问题标题】:how to add the trigger s3 bucket to lambda function dynamically(python boto3 API)如何将触发器 s3 存储桶动态添加到 lambda 函数(python boto3 API)
【发布时间】:2019-06-06 15:45:03
【问题描述】:

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

【问题讨论】:

  • 我也想给那个桶添加后缀

标签: python-2.7 amazon-web-services amazon-s3 aws-lambda aws-sdk


【解决方案1】:

这对我有用:

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

【讨论】:

  • 你是最佳人选
【解决方案2】:

这个问题的完整答案是:

在 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。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我正在研究同一主题,您可以分享代码 sn-p 吗?会很有用的。
    猜你喜欢
    • 2022-01-07
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 2017-09-05
    • 2019-01-30
    • 1970-01-01
    相关资源
    最近更新 更多