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

Serverless Framework: how to deploy with CloudFormation?

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

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

npm install -g serverless

然后我使用以下方法创建了一个服务:

serverless create --template aws-nodejs --path myService

最后,我运行:

serverless deploy

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

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

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

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

I did not properly set the AWS region

所以,我在错误的区域中寻找 lambda 函数:当然找不到!

Before deploying, one must make sure to set the correct region

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

region: eu-west-1

但是,由于某种原因,默认区域没有被覆盖,函数被部署到错误的区域。奇怪,那个。

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

sls deploy --region eu-west-1

The reason the default hello Lambda function is not listed in the AWS Lambda console is because your Lambda function was uploaded to the default region (us-east-1), while the Lambda console displays the functions of another region.

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

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

provider:
    region: eu-west-1

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

sls deploy --region eu-west-1