是否可以将代码从一个AWS Lambda函数复制到另一个而不先下载它?

时间:2017-07-12 21:05:42

标签: python amazon-web-services aws-lambda

因此,我正在为AWS Lambda函数构建部署程序。

由于AWS版本都共享一个配置,因此需要具有多个函数(foo_prod,foo_staging,foo_whatever),这些函数是我们代码的各种版本,而不是像我想要那样使用别名。

所以我的问题是:

1)是否有一种理智的方式来重新部署代码。 (IE:Staging to Prod)不先将其下载到我的桌​​面,然后重新上传。

2)我对该共享配置位是否错误,或者是否可以告诉函数在实际Lambda中运行哪个别名,以便我可以为每个环境创建多个环境变量。

1 个答案:

答案 0 :(得分:7)

您可以通过许多不同的方式部署lambda函数,而不涉及下载和重新上传代码。如果您使用SAM(http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-use-app-spec.html)之类的东西,您可以指向一个S3存储桶,它可以保存您的代码并构建函数。您还可以将CloudFormation连接到Git存储库(如Github或AWS CodeCommit),并在将提交推送到存储库时自动更新您的功能。还有像Severless(https://serverless.com)这样的其他系统可以以可重复和可管理的方式抽象和自动化部署。

Lambda的版本在上下文对象中可用。您应该能够通过查看ARN来确定调用哪个别名。 ARN将别名作为后缀,例如:

arn:aws:lambda:aws-region:acct-id:function:helloworld:PROD    

信息在这里:http://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html