根据AWS文档,我可以创建一个新的lambda函数别名,如:
aws lambda create-alias \
--region us-west-2 \
--function-name helloworld \
--description "sample alias" \
--function-version "\$LATEST" \
--name DEV \
--profile adminuser
据我所知,这个命令基本上将代码部署到最新的lambda别名。所以我相信它一部署就会变得活跃。但我想在它上线前测试它。我的问题是,将它置于中间阶段的最简单方法是什么,以便它可以等到我的Jenkins测试完成然后激活它?我应该创建另一个函数版本,如$ PRE_LATEST左右吗?
答案 0 :(得分:4)
您列出的命令将创建一个名为CHECKEDOUT.464646
的别名,该别名指向DEV
Lambda代码。您可以将$LATEST
视为一个特殊的别名,它始终指向最近上传的功能代码。这意味着如果您为Lambda上传新的功能代码,$LATEST
现在将指向该位置而不是运行DEV
命令时的位置。这通常不是我们想要的。
如果您想为特定版本的Lambda创建别名,则需要先发布一个版本:
create-alias
此命令将从当前$ aws lambda publish-version --function-name helloworld
状态创建helloworld
Lambda函数的编号版本。该命令的输出将是一些JSON,其中包含版本号字符串,如:$LATEST
。
然后,您可以使用创建指向此特定版本的别名:
"Version": "2",
以后上传新功能代码时,别名和版本都不会更改。实际上,Lambda的版本$ aws lambda create-alias --function-name helloworld --name DEV --function-version 2
永远不会改变。别名2
可以稍后更新,以指向您发布的其他版本:
DEV
对于您的用例,如果您想将功能代码上传到Lambda并在推送之前对其进行测试,我建议您创建一个生产服务使用的$ aws lambda update-alias --function-name helloworld --name DEV --function-version 3
别名。你的流程就像是:
LIVE
。$LATEST
复制到数字$LATEST
。N
别名以指向版本DEV
。N
别名以指向版本LIVE
。希望这有帮助!
答案 1 :(得分:0)
只需添加上述答案,您就可以将zip文件及其所有依赖项上传到lambda,然后发布新版本,然后使用现有别名映射该版本。 编写了一个快速的shell脚本来完成
# Remove zip file if already exit
rm index.zip
# Creating zip file
zip -r index.zip *
# Update lambda function, assuming the name of the current directory is same as the lambda function
lambdaName=${PWD##*/}
aws lambda update-function-code --function-name $lambdaName --zip-file fileb://index.zip
# Publish version
aws lambda publish-version --function-name $lambdaName
# Get latest version
version=$(aws lambda publish-version --function-name $lambdaName --description "updated via cli" --query Version | bc)
# Map alias to latest version this can be LIVE or TEST as per the above answer
aws lambda update-alias --function-name $lambdaName \--function-version $version --name TEST|LIVE
答案 2 :(得分:0)
要回答问题- 是否可以从控制台更新Alias??只能找到“ Create new Alias”,并且在相同的别名上会引发错误。 – Vineeth 18年2月16日,9:15
是的,可以从控制台更改lambda Alias指向的版本,但深深的Lambda UI很好地隐藏了该版本...
单击“别名”下拉菜单,然后选择要更改的别名(例如,产品)。
标题为Alias的页面的下半部分(隐藏的!!!)将更新,并为您提供一个下拉菜单,您可以在其中更改“别名描述”以及所选别名指向的版本。
仅当您更改这些字段之一时,才启用“保存”按钮。