天天看点

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

概述:lambda是指在aws上的一段代码,可以由外部时间触发运行,按运行收费。

一、上aws,进入lambda

  1. 登陆aws
  2. 在 find service 的搜索框内搜索 lambda 关键字,可进入lambda控制台界面

二、创建 lambda 函数

进入lambda 之后会自动进入 函数 标签页

  1. 点击右上角 创建函数 按钮
  2. 填写函数名字(自定义,如:test-function)
  3. 选择node版本(这里我选择8.1)
  4. 选择角色(如果没有角色要创建角色,具体又是另一个额外教程,这里跳过)
  5. 点击右下角创建函数按钮

这样一个lambda函数就简单的创建完成了

三、关联触发器

进入到函数设置页面,我们可以看到一个 Designer 的tab,中间是刚才我们创建的函数的名字,左边有触发器字样,我们可以在左边选择我们想要的触发器(比如:cloudwatch)

触发器选择之后,实际的设置其实需要在相应的触发器中设置,这边仅仅是做一个预设关联,点击函数名(test-function)旁边的触发器之后,我们可以在稍微下面一点的地方看到一个禁用按钮,在这里可以设置是否开启。

四、编辑函数

触发器创建完成之后,我们再次点击函数名(test-function)使得整体界面切换会我们的函数设置,需要在这个函数里面丰富代码,这里先做一个简单的示范

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

我们可以看到,刚创建好函数的时候,代码可以在线编辑,运行语言是我们的node版本,处理程序写着index.handler,说明这个就是lambda默认的触发函数,而且可以看到,编辑器里面已经默认为我们搭建了一个简单的函数

可以看到handler函数有一个参数event,如果对这个函数进行触发的时候需要传参,则是通过这个参数传进来的(如:event.test_argument)

除了上面放这种直接可以在页面编辑的简版代码,我们还可以编辑复杂的代码:(可以跳过本步骤)

创建文件夹:test-function

创建文件:index.js

```index.js

const moment = require('moment');

export.handler = async (event) => {

try {

const time =moment().format('YYYY-MM-DD');

return `Now time is ${time}`;

} catch (error) {

console.log(error);

throw error;

}

}

```

这次的文件中使用的npm包 moment (使用npm包就是直接在线编辑的方式无法做到的)

接下来我们需要将这个文件打包称zip文件,并上传到我们创建的lambda函数中

创建部署文件:./scripts/deploy.js

```scripts/deploy.js

const AWS = require('aws-sdk');

const fs = require('fs');

const path = require('path');

AWS.config.region = 'us-east-1';

const lambda = new AWS.Lambda();

const functionName = process.argv[2];

lambda.getFunction({

FunctionName: functionName,

},

(err, data) => {

if (err) {

console.log(JSON.stringify(err));

}

const deployPackage = path.join(__dirname, '..', 'build.zip');

fs.readFile(deployPackage, (err2, data2) => {

if (err2) {

console.log(`Could not read package file (${deployPackage}), verify the lambda package location is correct`);

}

const codeParams = {

FunctionName: functionName,

ZipFile: data2,

};

lambda.updateFunctionCode(codeParams, (err3, data3) => {

if (err3) {

console.log(JSON.stringify(err));

}

console.log('Package deployed.');

});

});

});

```

创建Makefile文件(如果是windows,无法使用Makefile文件,请直接在终端执行以下命令)

```Makefile

deploy:

zip -r build.zip * .[^.]*

node ./scripts/deploy.js test-function

```

最后在终端中执行 make deploy

Finish

五、设置环境变量

再下一个tab,就是环境变量的设置,lambda上的环境变量在这里设置,方式跟普通的key,value写法一致,填写完成之后记得在右上角点击保存

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

六、设置最大内存及超时时间

下一个tab是标签,可以跳过,然后是角色 tab,我们在创建函数的时候已经填写过了,因此也可以跳过

然后是 基本设置 tab,这个tab主要是设置内存和超时时间,根据实际情况设置。

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

七、选择网络

下一个是网络tab,这个也是需要预先设置好,再在这里选择,网络设置比较重要,如果没有选择网络的话,可能会影响到与外部的网络通信(如api trigger,数据库连接)

剩下还有三个tab,可以保持默认

八、完成测试

截止到现在,lambda函数就算完成了,需要外部事件(如SNS, cloudwatch, 程序)触发,在此之前,我们可以通过测试按钮查看lambda程序的运行状况。

右上角有一个测试按钮,在点击这个按钮之间,先点击它左边的 配置/选择 测试事件,即,如果说我们的lambda函数代码被触发,则可以通过这个按钮调用上面我们写好的handler函数。

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

配置测试事件,我们可以取好名字,预设传输的参数(将通过handler函数的event参数传入),保存后点击测试

vscode如何创建一个go项目_如何创建一个aws lambda一、上aws,进入lambda二、创建 lambda 函数三、关联触发器四、编辑函数五、设置环境变量六、设置最大内存及超时时间七、选择网络八、完成测试

成功返回

END