无服务器框架:如何使用CloudFormation进行部署?

时间:2017-01-11 12:03:57

标签: node.js amazon-web-services aws-lambda amazon-cloudformation serverless-framework

我是无服务器框架的新手。好吧,至少是最新版本,这在很大程度上取决于CloudFormation。

我使用以下方法在我的计算机上全局安装了框架:

npm install -g serverless

然后我使用:

创建了一个服务
serverless create --template aws-nodejs --path myService

最后,我跑了:

serverless deploy

一切似乎都正常部署,它在终端中没有显示错误。 我可以在新创建的专用S3存储桶中看到CloudFormation文件。

但是,我在AWS Lambda控制台中找不到默认的hello Lambda函数。

我错过了什么? CloudFormation文件是否应该在部署时创建Lambda函数?

2 个答案:

答案 0 :(得分:3)

  

AWS Lambda控制台中未列出默认hello Lambda函数的原因是您的Lambda函数已上载到默认区域(us-east-1),而Lambda控制台显示另一个函数区域。

要为您的功能设置正确的区域,您可以使用serverless.yml文件的区域字段。

确保region属性直接位于提供者部分下。缩进2/4个空格。像这样:

provider:
    region: eu-west-1

或者,您可以在部署时指定区域,如下所示:

sls deploy --region eu-west-1

答案 1 :(得分:0)

Duh,我犯了一个超级愚蠢的错误:

I did not properly set the AWS region

所以,我在错误的地区寻找一个lambda函数:当然无法找到它!

  

在部署之前,必须确保设置正确的区域

更新实际上,我通过提供以下内容在serverless.yml中设置了区域:

region: eu-west-1

但是,由于某种原因,默认区域未被覆盖,并且该功能已部署到错误的区域。奇怪,那个。

无论如何,解决此问题的一个简单方法是在部署时提供区域:

sls deploy --region eu-west-1