Environment.
jupyterlab,python 3.8
ubuntu 20.04LTS.
(客户端: macos bigsur /)
使用boto3。
Situation.
我建立了码头形象,并成功地把它推到ECR。
这张图片有awslambdaric和包含aws-lambda-rie。
我可以使用AWS控制台部署该映像。
我想要。
使用boto3(=python代码)将其部署到lambda。
问题.
按照boto3手册,部署lambda如下所示:
import boto3
lambdac = boto3.client('lambda')
dic = {
'FunctionName':'lambda-name',
# 'Runtime':'python3.8',
'Role':'my-role-arn',
'Code':{'ImageUri':uri},
}
lambdac.create_function(**dic)这是个错误。
它需要运行时,所以我添加了运行时(我认为docker容器版本不需要运行时)。
然后运行,然后返回另一个错误。
InvalidParameterValueException: An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: Runtime and Handler are mandatory parameters for functions created with deployment packages.这个错误让我认为“不支持带有容器的boto3部署lambda吗?”
因为我没有看到使用boto3将容器部署到lambda的示例。
问题.
难道不是boto3供应将容器部署到lambda吗?
还是其他boto3函数提供的?(ecr客户或其他人.)
或者,对于python开发环境,是否还有其他方法将容器部署到lambda?
发布于 2021-06-05 19:05:06
我自己解决的。
create_function的后腿需要“PackageType”:“图像”
import boto3
lambdac = boto3.client('lambda')
dic = {
'FunctionName':'lambda-name',
'Role':'my-role-arn',
'Code':{'ImageUri':uri},
'PackageType':'Image' #add this parameter
}
lambdac.create_function(**dic)https://stackoverflow.com/questions/67710230
复制相似问题