【问题标题】:AWS Lambda trigger not having cloudfrontAWS Lambda 触发器没有云端
【发布时间】:2019-07-31 21:42:01
【问题描述】:

我创建了一个新的 lambda 函数,但没有将 cloudfront 视为触发器中的选项。有人知道为什么会这样吗?谢谢

【问题讨论】:

  • 您用什么语言编写了 Lambda 函数?
  • 我用JAVA写的

标签: aws-lambda amazon-cloudfront


【解决方案1】:

根据 AWS 当前文档:

确保您位于 US-East-1(弗吉尼亚北部)区域。你必须 在此区域中创建 Lambda@Edge 函数。

见:AWS Tutorial: Creating a Simple Lambda@Edge Function

【讨论】:

    【解决方案2】:

    您无法从 Lambda 控制台添加。要为缓存行为添加触发器,您需要从 CloudFront 控制台执行此操作。

    这里有详细解释-https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-add-triggers-cf-console.html

    【讨论】:

    【解决方案3】:

    CloudFront 的 Lambda@Edge 集成功能要求函数以 Node.js 编写。无法直接从 CloudFront 触发其他语言的函数。

    您必须使用 nodejs6.10nodejs8.10 运行时属性创建函数。

    https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-requirements-limits.html#lambda-requirements-lambda-function-configuration

    当然,在 Node.js 运行时环境中,您可以使用 AWS Javascript SDK,因此如果您有一个真正令人信服的案例,您可以使用 Javascript 函数中的该案例来调用另一个,不同的 Lambda 函数用不同的语言编写......但很难想象一个常见的情况,因为这会增加延迟和成本,但我有,例如,使用这个解决方案来允许 Lambda@Edge 到达在 VPC 内部——这只能通过从第一个内部调用第二个 Lambda 函数(可以配置为具有 VPC 访问权限)来完成(不能,因为 Lambda@Edge 函数在离查看器最近的区域中运行,而不是在单个区域中,因此它们不会在 VPC 中运行)。

    【讨论】:

    • 嗨迈克尔,感谢您的回复。这是有道理的,为什么我一直在努力将它添加到 Cloud Front。再次感谢
    猜你喜欢
    • 2019-01-11
    • 2022-08-08
    • 2020-05-17
    • 2020-07-28
    • 2018-02-16
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    相关资源
    最近更新 更多