AWS Serverless Lambda

AWS Serverless with Claudia.js

最近项目架构升级,迁移到AWS,使用了AWS Serverless 架构 Lambda,项目使用了Claudia做项目自动部署。

Claudia可以轻松地将Node.js项目部署到AWS Lambda和API Gateway。它可以自动执行所有容易出错的部署和配置任务,并将所有内容设置为JavaScript开发人员开箱即用的方式。这意味着您可以轻松开始使用Lambda和API Gateway,并专注于解决重要的业务问题,而不是处理AWS部署工作流。

部署您的第一个AWS Lambda函数

创建一个新的NPM项目,并给它一个描述性的名称(例如claudia-test):

mkdir claudia-test
cd claudia-test

npm init

将Claudia.js安装为全局NPM实用程序:

npm install claudia -g

现在,创建一个简单的JavaScript Lambda函数 - 例如,在一个名为的文件中lambda.js

exports.handler = function (event, context) {
context.succeed('hello world');};

使用Claudia将此功能发送给AWS。您需要指定Lambda执行的主要方法(在​​Lambda术语中,就是这样handler)。语法是module.method。因为主要的微服务模块是lambda.js,而且方法是handler,这个论点应该是lambda.handler。(请注意,您需要使用模块名称,而不是文件名)

claudia create --region us-east-1 --handler lambda.handler

};
部署完成后,Claudia将claudia.json在项目目录中保存一个新文件,其中包含功能详细信息,因此您可以轻松地调用和更新它。

您现在可以直接从控制台调用Lambda函数:

claudia test-lambda 

你应该得到以下回应:

 {
  "StatusCode": 200,
   "Payload": "\"hello world\""
}

这意味着该功能已部署到AWS,现在可以处理事件了。对于更严重的事情,您可以将此Lambda连接到各种事件源,例如S3文件系统,SNS队列,CloudWatch日志事件,DynamoDB流等。
更新现有的Lambda函数
让我们做一些更有活力的事情。我们会给它发一个名字,并期待一个问候作为回报。我们还将使用CloudWatch记录请求。修改lambda.js文件:

exports.handler = function (event, context) {
console.log(event);
context.succeed('hello ' + event.name);}

将新版本发送到AWS:

claudia update 

现在使用请求数据创建一个测试事件,例如在一个名为的文件中event.json:

{
 "name": "Tom"
} 

现在使用测试事件调用Lambda函数:

 claudia test-lambda --event event.json

响应应该来自事件的名称:

 {
  "StatusCode": 200,
   "Payload": "\"hello Tom\""
 }

您现在可以使用AWS Web Console或AWS命令行工具检出日志:

aws logs filter-log-events --log-group-name /aws/lambda/claudia-test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值