Amazon web services 将AWS Lambda功能代码直接存储在S3存储桶中
AWS Lambda函数有一个选项,可以输入作为S3文件上传的代码。我有一个成功运行的lambda函数,代码作为S3存储桶中的zip文件,但是,任何时候您想要更新此代码,您都需要手动编辑lambda函数中的内联代码,或者将新的zip文件上载到S3,然后进入lambda函数并手动从S3重新上载文件。有没有办法让lambda函数链接到S3中的文件,以便在您更新S3中包含的代码文件(或zip文件)时自动更新其函数代码?您可以设置一个,以便在代码存储库(github、bitbucket等)中的代码提交时生成和部署代码 CodeDeploy是一种自动化应用程序的部署服务 部署到Amazon EC2实例、本地实例和无服务器 Lambda功能或亚马逊ECS服务Amazon web services 将AWS Lambda功能代码直接存储在S3存储桶中,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,AWS Lambda函数有一个选项,可以输入作为S3文件上传的代码。我有一个成功运行的lambda函数,代码作为S3存储桶中的zip文件,但是,任何时候您想要更新此代码,您都需要手动编辑lambda函数中的内联代码,或者将新的zip文件上载到S3,然后进入lambda函数并手动从S3重新上载文件。有没有办法让lambda函数链接到S3中的文件,以便在您更新S3中包含的代码文件(或zip文件)时自动更新其函数代码?您可以设置一个,以便在代码存储库(github、bitbucket等)中的代码提交时
Lambda在运行时并没有实际引用S3代码——只是在设置函数时。这就像它在您的bucket中获取代码的副本,然后运行副本。因此,虽然没有直接的方法让lambda函数自动运行bucket中的最新代码,但您可以编写一个小脚本,使用SDK方法更新函数代码。我不知道您可能想要使用哪种语言,但例如,您可以编写一个脚本来调用AWS CLI来更新函数代码。看 更新Lambda函数的代码。 发布版本时,函数的代码被锁定。你不能 修改已发布版本的代码,仅修改未发布版本的代码 另请参见:AWS API文档 有关全局参数的说明,请参阅“aws帮助” 简介 更新功能代码 --函数名[--zip文件][--s3存储桶][--s3键][--s3对象版本][--publish| --无发布][--干运行|--无干运行][--修订id][--cli输入json][--生成cli骨架] 您也可以使用Python或PowerShell执行类似的操作,例如使用
另外,如果您想采用无人值守的方式将更新后的代码部署到Lambda,请在代码管道中使用此流程
Source
->代码构建(npm安装和压缩等)
->S3上传(S3 bucket中的sourcecode.zip)
->代码构建(另一个构建仅用于aws lambda更新功能代码)
确保最后一个阶段的角色同时附加了
s3getobject
和Lambda UpdateFunctionCode
策略