amazon-web-services - 无法将 cloudfront 添加为 lambda 函数的触发器

标签 amazon-web-services aws-lambda aws-cloudformation amazon-cloudfront aws-lambda-edge

嗨,我已经关注了这个 instruction尝试使用 Cloudfront 和 lambda@edge 调整图像大小。当我尝试测试调整大小的图像时,我不断收到以下错误消息:

The Lambda function associated with the CloudFront distribution is invalid or doesn't have the required permissions.

于是我检查了开头提到的文章中提供的云形成创建的lambda函数,发现里面没有触发器。

enter image description here

我尝试手动设置,但收到以下错误消息:

CloudFront events cannot be associated with $LATEST or Alias. Choose Actions to publish a new version of your function, and then retry association.

我按照错误消息中的说明进行操作;发布,并将 Cloudfront 添加为触发器,但似乎无法应用它。它仍在运行没有 Cloudfront 作为触发器的版本。

How can I apply this version as my lambda service?

有什么方法可以将 Cloudfront 设置为触发器并使其正常工作吗?

最佳答案

对于在 Google 上搜索“与 CloudFront 分配关联的 Lambda 函数无效或没有所需权限”的人:

我收到了这个错误并努力调试它。结果发现我的 Lambda 中存在一些程序错误,我必须解决这些错误。但是,如果在访问 Cloudfront 时不断收到“与 CloudFront 发行版关联的 Lambda 函数无效或没有所需权限”的消息,您该如何调试它。 Cloudwatch 日志中没有任何内容。

我的 Lambda 是在 Cloudformation 中定义的 AWS::Lambda::Function's ZipFile属性。我最终转到 AWS 内部的 Lambda 服务,并创建了与我的 Cloudfront 事件相对应的 Lambda 测试负载,如下所示:Lambda@Edge Event Structure 。然后,我可以在 Lambda 控制台内调试 Lambda,而无需访问 Cloudfront 或导航到 Cloudwatch 日志。

关于amazon-web-services - 无法将 cloudfront 添加为 lambda 函数的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511999/

相关文章:

amazon-web-services - 如何使用AWS Lambda检查S3中的文件

python - Boto3 S3 列表对象在 AWS lambda 中抛出错误

aws-cloudformation - 在 2 个区域部署 2 个依赖的 Cloudformation 堆栈部分

amazon-elastic-beanstalk - 云信息 : Create ElasticBeanstalk without Load Balancer

json - Cloudformation 列表和字符串::SecurityGroupIds 属性的值必须是字符串列表类型

python - 如何使用 boto 获取给定工作流执行的 SWF 事件信息

linux - 如何在运行 AWS Linux 2 的 AWS Elastic Beanstalk 上配置 Linux 交换空间?

node.js - 如何使用 node.js aws-sdk、cloudwatch 和 lambda 函数安排调用 API

amazon-web-services - AWS Tomcat SSL 浏览器错误 - 我错过了什么?

amazon-web-services - 在生产中禁用 sls 插件(每个阶段有不同的插件?)