Amazon cloudformation Tachyon图像处理-CloudFront配置-指定的密钥不存在-NoSuchKey

Amazon cloudformation Tachyon图像处理-CloudFront配置-指定的密钥不存在-NoSuchKey,amazon-cloudformation,amazon-cloudfront,aws-sdk-nodejs,sharp,tachyon,Amazon Cloudformation,Amazon Cloudfront,Aws Sdk Nodejs,Sharp,Tachyon,有没有人在使用最新的CloudFormation模板和最新的发布包时遇到过上述问题?(lambda.zip) 该捆绑包包括: index.js lambda-handler.js 节点单元 proxy-file.js server.js 云信息配置: API网关 匿名函数 云锋分布 对我来说,这表明该对象不存在。然而,它确实存在,并且许多测试可以确认对象存在并且公开可用。但是,如果我直接调用api网关并传递参数,lambda不会通过CloudFront抛出错误——这几乎就像转换请求的url并中

有没有人在使用最新的CloudFormation模板和最新的发布包时遇到过上述问题?(lambda.zip)

该捆绑包包括:

index.js lambda-handler.js 节点单元 proxy-file.js server.js

云信息配置:

API网关 匿名函数 云锋分布


对我来说,这表明该对象不存在。然而,它确实存在,并且许多测试可以确认对象存在并且公开可用。但是,如果我直接调用api网关并传递参数,lambda不会通过CloudFront抛出错误——这几乎就像转换请求的url并中断请求一样

-这通过CloudFront发行版进行,但Lambda错误表明不存在此类密钥。当图像加载到浏览器中时,可以通过域名和图像路径毫无疑问地访问图像。但是,传递resize参数似乎会中断函数

{
"errorMessage": "The specified key does not exist.",
"errorType": "NoSuchKey",
"stackTrace": [
"Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:585:35)",
"Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
"Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
"Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
"Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
"AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
"/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
"Request. (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
"Request. (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
"Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"
]
}
  • 使用提供的CloudFormation模板
  • 使用提供的超光速子代码
  • 一个桶用来装超光速子密码
  • 一个用于图像的存储桶-可公开访问
  • 根据指南为bucket name和region提供Lambda变量
  • 将域指向CloudFront分发的DNS Cname
对我来说,这似乎是CloudFront配置的一个问题

"errorMessage": "The specified key does not exist.",
"errorType": "NoSuchKey",
"stackTrace": [
"Request.extractError (/var/runtime/node_modules/aws-sdk/lib/services/s3.js:585:35)",
"Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)",
"Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)",
"Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)",
"Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)",
"AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)",
"/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10",
"Request. (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)",
"Request. (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)",
"Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"
]
}
预期结果是-将调整大小的图像返回到浏览器

实际结果-aws sdk中没有此类密钥的Lambda错误

任何指导都将不胜感激

谢谢

输出:

E0000 Duplicate resource found "Handler" (line 162)
cloudformation-template.json:162:9
根据,此资源类型应该有一个
处理程序
属性。是否要为此资源指定多个
处理程序
属性?

输出:

E0000 Duplicate resource found "Handler" (line 162)
cloudformation-template.json:162:9

根据,此资源类型应该有一个
处理程序
属性。您的意思是为该资源指定多个
处理程序
属性吗?

您是如何格式化对S3 bucket的引用的?因此使用Lambda上的环境变量(根据Tachyon文档)S3_bucket(bucketname)和S3_区域(us-east-1)引用该bucket的-然后,我在url中引用的bucket的根中有一个示例图像。“如果我直接调用api网关并传递参数,lambda不会抛出错误”如果它已经通过使用api网关端点工作,那么为什么不将其用于您的项目?我不熟悉Tachyon,但我知道CloudFront在默认情况下已经用于API网关端点:您是如何格式化对S3 bucket的引用的?因此该bucket是使用Lambda(根据Tachyon文档)S3_bucket(bucketname)和S3_REGION(us-east-1)上的环境变量引用的-然后,我在url中引用的bucket的根中有一个示例图像。“如果我直接调用api网关并传递参数,lambda不会抛出错误”如果它已经通过使用api网关端点工作,那么为什么不将其用于您的项目?我不熟悉Tachyon,但我知道CloudFront在默认情况下已经与API网关端点一起使用:感谢您强调这一点-CloudFormation模板来自Tachyon repo-但是是的,Lambda控制台中唯一可见的处理程序是Lambda处理程序-但我猜这引用了index.js文件?这看起来像是在处理Tachyon操作。谢谢你强调这一点-CloudFormation模板来自Tachyon repo-但是是的,Lambda控制台中唯一可见的处理程序是Lambda处理程序-但是我猜这引用了index.js文件?看起来它能处理超光速粒子的运作。。