我正在使用无服务器框架使用 aws lambda,我将运行时从 更改nodejs8.10为nodejs10.x,然后我得到了一个错误跟踪,
{"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module 'jmespath'","stack":["Runtime.ImportModuleError: Error: Cannot find module 'jmespath'"," at _loadUserApp (/var/runtime/UserFunction.js:100:13)"," at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)"," at Object.<anonymous> (/var/runtime/index.js:36:30)"," at Module._compile (internal/modules/cjs/loader.js:701:30)"," at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)"," at Module.load (internal/modules/cjs/loader.js:600:32)"," at tryModuleLoad (internal/modules/cjs/loader.js:539:12)"," at Function.Module._load (internal/modules/cjs/loader.js:531:3)"," at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)"," at startup (internal/bootstrap/node.js:283:19)"]}
Run Code Online (Sandbox Code Playgroud)
这个问题的原因是什么,如何解决?
我正在处理一个无服务器项目,并且只能访问 aws cli,所以我想获取事件等函数的触发信息,并且由于我使用 sns 主题来触发该函数,所以我想获取该主题infomation 和 arn,我尝试了不同的选项,例如,
list-event-source-mapping- 返回一个空数组
get-function: 不具有该值
我是否有办法使用 aws cli 获取函数的触发信息?
我正在使用 AWS Textract 并且我想分析一个多页文档,因此我必须使用异步选项,所以我首先使用了startDocumentAnalysis函数,我得到了一个 JobId 作为返回,但它需要触发一个我设置为的函数当 SNS 主题收到消息时触发。
这些是我的无服务器文件和处理程序文件。
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: us-east-1
iamRoleStatements:
- Effect: "Allow"
Action:
- "s3:*"
Resource: { "Fn::Join": ["", ["arn:aws:s3:::${self:custom.secrets.IMAGE_BUCKET_NAME}", "/*" ] ] }
- Effect: "Allow"
Action:
- "sts:AssumeRole"
- "SNS:Publish"
- "lambda:InvokeFunction"
- "textract:DetectDocumentText"
- "textract:AnalyzeDocument"
- "textract:StartDocumentAnalysis"
- "textract:GetDocumentAnalysis"
Resource: "*"
custom:
secrets: ${file(secrets.${opt:stage, self:provider.stage}.yml)}
functions:
routes:
handler: src/functions/routes/handler.run
events:
- s3:
bucket: ${self:custom.secrets.IMAGE_BUCKET_NAME}
event: s3:ObjectCreated:*
textract:
handler: src/functions/routes/handler.detectTextAnalysis
events:
- sns: "TextractTopic"
resources:
Resources: …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-sdk aws-lambda aws-sdk-nodejs amazon-textract
我正在尝试部署一个 serverless 项目,该项目在 serverless.yml 文件中具有 s3 存储桶创建 cloudformation,但问题是当我尝试部署时,它说 s3 存储桶已经存在并且部署失败。
我知道 s3 存储桶名称应该是全局唯一的,而且我非常确定它是我正在使用的唯一名称,即使更改为其他名称,它仍然表示相同。
它说存在 s3 存储桶的 cloudformation 堆栈实际上是新创建的堆栈,不确定如何解决此问题。谁能帮我解决这个问题并告诉我如何解决部署问题和问题的原因:)。
提前致谢。
amazon-s3 amazon-web-services aws-cloudformation serverless-framework serverless
我正在做一个项目,我想维护它的文件夹结构,所以对于每个控制器文件,我都有一个controller.test文件,但有时,我可能有空的测试文件,由于某些原因,当我遇到这种情况时,Jest 会抛出错误,由于文件数量巨大,因此很难从大量空的测试文件消息中找到测试失败。
Jest 是否有任何配置可以防止在空测试文件上抛出错误消息?
aws-lambda ×3
amazon-s3 ×1
aws-cli ×1
aws-sdk ×1
jestjs ×1
node.js ×1
serverless ×1
testing ×1
unit-testing ×1