gpt4 book ai didi

node.js - 无服务器应用程序的结构

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:12 25 4
gpt4 key购买 nike

我是无服务器应用程序的新手。我按照 aws 教程使用 Codestar 和 lambda 构建了一个简单的 NodeJS 无服务器应用程序。

但是,想象一下这个 Node 应用程序可以做多种事情。因此,它在index.js 中有多个函数,一个用于功能A,一个用于功能B,等等(例如)。

我是否必须将多个 lambda 表达式(每个功能一个)附加到此 codestar 项目?

最佳答案

问题:我是否必须将多个 lambda 表达式(每个功能一个)附加到此 codestar 项目?答案:是的

AWS CodeStar 项目详细信息:

AWS Code 明星项目包含以下文件结构( reference link ):

README.md - this file
buildspec.yml - this file is used by AWS CodeBuild to package your service for deployment to AWS Lambda
app.js - this file contains the sample Node.js code for the web service
index.js - this file contains the AWS Lambda handler code
template.yml - this file contains the Serverless Application Model (SAM) used by AWS Cloudformation to deploy your service to AWS Lambda and Amazon API Gateway.

假设您有如下所示的 template.yml 文件:

AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::Serverless-2016-10-31
- AWS::CodeStar
Resources:
HelloWorld:
Type: AWS::Serverless::Function
Properties:
Handler: index.first_handler
Runtime: nodejs4.3
Role:
Fn::ImportValue:
!Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
Events:
GetEvent:
Type: Api
Properties:
Path: /first
Method: get
HelloWorld2:
Type: AWS::Serverless::Function
Properties:
Handler: index.second_handler
Runtime: nodejs4.3
Role:
Fn::ImportValue:
!Join ['-', [!Ref 'ProjectId', !Ref 'AWS::Region', 'LambdaTrustRole']]
Events:
GetEvent:
Type: Api
Properties:
Path: /second
Method: get

请注意,在上面的 tamplate.yml 文件中指定了“HelloWorld”和“HelloWorld2”配置。

  • HelloWorld 配置包含“Handler”值为“index.first_handler”,这意味着“index”是index.js 的文件名,first_handler 是index.js 文件中的方法。
  • 同样,HelloWorld2 配置包含“Handler”值为“index.second_handler”,这意味着“index”是index.js 的文件名,second_handler 是index.js 文件中的方法。

结论:

您可以在 index.js (whatever.js) 文件中指定任意数量的 lambda 函数。只需指定正确的处理程序来识别您的 lambda 函数的应用程序。

希望这是您问题的答案。如果您有疑问,请随时提出!

关于node.js - 无服务器应用程序的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47565978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com