如何从 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)
我想通过 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)