Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 将AWS Lambda功能代码直接存储在S3存储桶中_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

Amazon web services 将AWS Lambda功能代码直接存储在S3存储桶中

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等)中的代码提交时

AWS Lambda函数有一个选项,可以输入作为S3文件上传的代码。我有一个成功运行的lambda函数,代码作为S3存储桶中的zip文件,但是,任何时候您想要更新此代码,您都需要手动编辑lambda函数中的内联代码,或者将新的zip文件上载到S3,然后进入lambda函数并手动从S3重新上载文件。有没有办法让lambda函数链接到S3中的文件,以便在您更新S3中包含的代码文件(或zip文件)时自动更新其函数代码?

您可以设置一个,以便在代码存储库(github、bitbucket等)中的代码提交时生成和部署代码

CodeDeploy是一种自动化应用程序的部署服务 部署到Amazon EC2实例、本地实例和无服务器 Lambda功能或亚马逊ECS服务


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
策略