如何从 Python 脚本创建和管理 Lambda 函数?

How can I create and manage a Lambda Function from Python Script?

我想通过 Python 脚本管理我的 AWS Lambda 函数,而不必使用 AWS 网站控制台。这个想法是为了能够快速 recreate/migrate/setup 我的应用程序对象(tables、函数等)到一个新的 AWS 云帐户或区域。

使用 DynamoDB tables 很容易做到这一点,例如:

import boto3
resource = boto3.resource(service_name='dynamodb', region_name='region', ...)
resource.create_table(
                TableName='table_name',
                KeySchema=[...],
                AttributeDefinitions={...},
                ProvisionedThroughput={...}
            )

完成!我刚刚从 Python 脚本创建了一个新的 DynamoDB table。我如何为 Lambda 函数做同样的事情?说...创建一个新函数,配置“函数名称”和“运行时”,也许设置一个“角色”并从文件上传脚本。那真的很有帮助。

提前致谢。

要使用 boto3 创建 lambda 函数,您可以使用 create_function

AWS docs 还提供了如何使用 create_function 的示例:

response = client.create_function(
    Code={
        'S3Bucket': 'my-bucket-1xpuxmplzrlbh',
        'S3Key': 'function.zip',
    },
    Description='Process image objects from Amazon S3.',
    Environment={
        'Variables': {
            'BUCKET': 'my-bucket-1xpuxmplzrlbh',
            'PREFIX': 'inbound',
        },
    },
    FunctionName='my-function',
    Handler='index.handler',
    KMSKeyArn='arn:aws:kms:us-west-2:123456789012:key/b0844d6c-xmpl-4463-97a4-d49f50839966',
    MemorySize=256,
    Publish=True,
    Role='arn:aws:iam::123456789012:role/lambda-role',
    Runtime='nodejs12.x',
    Tags={
        'DEPARTMENT': 'Assets',
    },
    Timeout=15,
    TracingConfig={
        'Mode': 'Active',
    },
)

print(response)