Amazon web services 如何使用AWS lambda的无服务器部署来部署环境变量

Amazon web services 如何使用AWS lambda的无服务器部署来部署环境变量,amazon-web-services,aws-lambda,yaml,aws-serverless,Amazon Web Services,Aws Lambda,Yaml,Aws Serverless,我是AWS lambda的新手,我使用Servless deploy部署在serverless.yml文件中声明的lambda函数。 在该文件中,我编写了一个我部署的lambda函数,它工作正常,但问题是,我给出的任何环境变量在该lambda函数的控制台中都不可用。我可能犯了一些小错误,或者对于部署环境变量,应该有一些其他语法。 我可以在控制台中转到lambda函数并手动添加环境变量。 但我的疑问是,我们是否可以在通过serverless-deploy 您可以使用AWS Lambda提供的版本和

我是AWS lambda的新手,我使用Servless deploy部署在serverless.yml文件中声明的lambda函数。 在该文件中,我编写了一个我部署的lambda函数,它工作正常,但问题是,我给出的任何环境变量在该lambda函数的控制台中都不可用。我可能犯了一些小错误,或者对于部署环境变量,应该有一些其他语法。 我可以在控制台中转到lambda函数并手动添加环境变量。 但我的疑问是,我们是否可以在通过
serverless-deploy

您可以使用AWS Lambda提供的版本和别名

您可以创建同一lambda函数的不同版本,并为其提供别名。比如,当您推送lambda代码时—创建一个版本(假设为5)—创建一个别名(假设为TEST)。 当您确定其已准备好投入生产时,创建一个版本(或选择一个现有版本并命名为PROD)

现在,无论何时执行lambda函数,它都会给出
lambda ARN
它包含别名,通过它您可以知道哪个别名(在context.invokedfunctorn中)是 已执行,即可以用作环境变量。而 调用函数时,您可以提到从哪个函数执行 您的调用代码

现在,无论何时部署新代码,只要将别名指向该版本即可。 您可以使用AWS控制台或CLI进行此操作

看看这个

要直接部署到别名(PROD),可以这样做-

    aws lambda update-alias \
    --region region \
    --function-name helloworld \
    --function-version 2 \
    --name PROD
Serverless deploy适用于任何阶段的部署它也在给定阶段部署环境变量,my case环境变量没有部署,因为yaml文件中存在缩进问题,甚至Serverless deploy命令也没有抛出错误。它是部署函数,但没有部署环境变量

在yaml文件中,我们可以像这样说明我们想要部署的阶段

provider:
name: aws
runtime: nodejs6.10
stage: dev
region: eu-west-2

如果有人遇到类似的问题,希望这会有所帮助

谢谢Rahul,我采取了类似的方法来部署不同的版本,但我的问题是关于我在yaml文件中定义的环境变量。当我在其他版本上部署它时,新版本的lambda环境变量没有得到更新,我必须手动执行此操作在控制台中,手动更新环境变量的方法,我试图避免!添加了一个命令,从CLI更新到prod,这可能会有所帮助。
serverless deploy 
provider:
name: aws
runtime: nodejs6.10
stage: dev
region: eu-west-2