【问题标题】:How to trigger a particular version of lambda from s3 events如何从 s3 事件触发特定版本的 lambda
【发布时间】:2020-12-20 07:43:57
【问题描述】:

我使用 lambda 作为 ETL 工具来处理来自 s3 存储桶的原始文件。

随着时间的推移,lambda 函数的功能会不断增长。

每个月,我都会更改 lambda 函数。所以,我想发布版本 1,2,3

如何让 s3 存储桶为文件触发特定版本的 lambda?

在这种情况下,我如何测试生产与测试的这种功能?

【问题讨论】:

  • 请问您的 Lambda 函数的执行持续时间是多少?
  • 我保持了 3 分钟的超时。通常它在 500 毫秒内执行
  • 好的,听起来不错,所以使用 Lambda 函数是合理的。你在使用无服务器框架吗?
  • 特定存储桶会触发特定版本吗?还是逻辑比这更复杂?
  • 只有 1 个桶会触发它。

标签: python-3.x pandas amazon-web-services amazon-s3 aws-lambda


【解决方案1】:

来自AWS Lambda function aliases - Documentation

当您使用基于资源的策略向服务、资源或帐户授予对您的函数的访问权限时,该权限的范围取决于您是将其应用于别名、版本还是函数。如果您使用别名(如helloworld:PROD),则该权限仅对使用别名ARN 调用helloworld 函数有效。如果您使用版本 ARN 或函数 ARN,则会收到权限错误。这包括别名指向的版本 ARN。

例如,以下 AWS CLI 命令授予 Amazon S3 调用 helloworld Lambda 函数的 PROD 别名的权限。请注意,--qualifier 参数指定别名。

$ aws lambda add-permission --function-name helloworld \
--qualifier PROD --statement-id 1 --principal s3.amazonaws.com --action lambda:InvokeFunction \
--source-arn arn:aws:s3:::examplebucket --source-account 123456789012 

在这种情况下,Amazon S3 现在能够调用 PROD 别名。然后,Lambda 可以执行 PROD 别名引用的 helloworld Lambda 函数版本。为此,您必须在 S3 存储桶的通知配置中使用 PROD 别名 ARN。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多