使用 Boto3 更新 Lambda 函数以使用新的层版本

Posted

技术标签:

【中文标题】使用 Boto3 更新 Lambda 函数以使用新的层版本【英文标题】:Update the Lambda function to use the new Layer Version using Boto3 【发布时间】:2020-06-14 04:39:14 【问题描述】:

我有一个 lambda 函数,那个 lambda 正在使用层。我正在创建一个 boto3 来更新 lambda 函数以使用最新层。我只能在 AWS boto3 文档 (https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.update_function_code) 中看到这个(参见下面的代码)。

response = client.update_function_code(
    FunctionName='string',
    ZipFile=b'bytes',
    S3Bucket='string',
    S3Key='string',
    S3ObjectVersion='string',
    Publish=True|False,
    DryRun=True|False,
    RevisionId='string'
)

我看不到指向新版本/更新的图层字段。

TIA。

【问题讨论】:

添加了答案@Arun 【参考方案1】:

update_function_code 是代码更改的函数。您必须使用update_function_configuration 来更新层或任何其他配置

response = client.update_function_configuration(
    FunctionName='string',
    Role='string',
    Handler='string',
    Description='string',
    Timeout=123,
    MemorySize=123,
    VpcConfig=
        'SubnetIds': [
            'string',
        ],
        'SecurityGroupIds': [
            'string',
        ]
    ,
    Environment=
        'Variables': 
            'string': 'string'
        
    ,
    Runtime='nodejs'|'nodejs4.3'|'nodejs6.10'|'nodejs8.10'|'nodejs10.x'|'nodejs12.x'|'java8'|'java11'|'python2.7'|'python3.6'|'python3.7'|'python3.8'|'dotnetcore1.0'|'dotnetcore2.0'|'dotnetcore2.1'|'dotnetcore3.1'|'nodejs4.3-edge'|'go1.x'|'ruby2.5'|'ruby2.7'|'provided',
    DeadLetterConfig=
        'TargetArn': 'string'
    ,
    KMSKeyArn='string',
    TracingConfig=
        'Mode': 'Active'|'PassThrough'
    ,
    RevisionId='string',
    Layers=[
        'string',
    ]
)

参考:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.update_function_configuration

【讨论】:

以上是关于使用 Boto3 更新 Lambda 函数以使用新的层版本的主要内容,如果未能解决你的问题,请参考以下文章

使用boto3下载Lambda函数的部署包

AWS Lambda 函数 - 无法调用更新事物影子

函数 ec2.snapshots.all 不迭代 boto3 lambda

AWS lambda 使用启动模板和 boto3 创建 ec2 实例,仅使用所需的权限

使用 lambda 函数通过 s3 存储桶将巨大的 .csv 文件上传到 dynamodb 时出错

使用 lambda boto3 检查 ec2 是不是存在