自动化 - 使用Grunt
Git上提供了完整的AWS Lambda Seed项目。
第 1 步:初始化 npm 模块
npm init
第 2 步:安装 Grunt
npm install --save-dev grunt grunt-cli
第 3 步:安装grunt-aws-lambda
npm install --save-dev grunt-aws-lambda
第 4 步:为 Lambda 服务创建文件夹
# Create directory
mkdir lambdaTest
# Jump into folder
cd lambdaTest
# Create service file
touch lambdaTest.js
# Initialize npm
npm init
将您的逻辑/代码保存在lambdaTest.js
'use strict'
exports.handler = (event, context, callback) => {
console.log("Hello it's looks like working");
};
第 5 步:创建Gruntfile.js
导航回根文件夹
touch Gruntfile.js
'use strict'
module.exports = function (grunt) {
grunt.initConfig({
lambda_invoke: {
lambdaTest: {
options: {
file_name: "lambdaTest/lambdaTest.js",
event: "lambdaTest/test.json",
}
}
},
lambda_package: {
lambdaTest: {
options: {
package_folder: 'lambdaTest/'
}
}
},
lambda_deploy: {
lambdaTest: {
arn: 'arn:aws:lambda:eu-central-1:XXXXXXXX:function:lambdaTest',
options: {
credentialsJSON: 'awsCredentials.json',
region: "eu-central-1"
},
}
},
});
grunt.loadNpmTasks('grunt-aws-lambda');
grunt.registerTask('ls-deploy', ['lambda_package:lambdaTest', 'lambda_deploy:lambdaTest']);
};
第 6 步:创建awsCredentials.js
使用自定义策略创建 AWS IAM 用户,自定义策略应有权访问lambda:GetFunction
、lambda:UploadFunction
、lambda:UpdateFunctionCode
和lambda:UpdateFunctionConfiguration
iam:PassRole
{
"accessKeyId": "XXXXXXXXXXXXXXXXXXXX",
"secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
第 7 步:创建 zip 并部署到 AWS Lambda。
ls-deploy
是在上面的 Gruntfile 中创建的自定义任务,它创建源代码的 zip 并部署到 Lambda。
grunt ls-deploy
Git上提供了完整的AWS Lambda Seed项目。