![](/img/trans.png)
[英]AWS Lambda function + Cloudwatch, how to pass the right parameters to a timed execution
[英]How to pass parameters to an AWS Lambda Function using Python
我用 Python 编写了一个 AWS Lambda 函数,它过滤实例并根据它们的标记方式打开或关闭它们。 这将向您展示一个工作功能,以及使其工作所需的设置。 如果您对任何内容有疑问,请在评论中发表。
这是我目前的 Lambda 函数:
import boto3
def lambda_handler(event, context):
startStop = event['startStop']
vertical = event['vertical']
isRunning = ''
if(startStop == 'start'):
isRunning = 'stopped'
elif (startStop == 'stop'):
isRunning = 'running'
ec2 = boto3.resource('ec2')
filters = [
{
'Name': 'instance-state-name',
'Values': [isRunning]
},
{
'Name': 'tag:Vertical',
'Values': [vertical]
}
]
instances = ec2.instances.filter(Filters=filters)
runningInstances = [instance.id for instance in instances]
if len(runningInstances) > 0:
if(startStop == 'start'):
shuttingDown = ec2.instances.filter(InstanceIds=runningInstances).start()
elif (startStop == 'stop'):
shuttingDown = ec2.instances.filter(InstanceIds=runningInstances).stop()
作为参考,这是我的映射模板:
{
"startStop":"$input.params('startStop')",
"vertical":"$input.params('vertical')"
}
这就是我在 URL 中传递参数的方式:
https://awslambdaapiurl.../prod/-params?startStop=start&vertical=TEST
您可以在事件对象上使用queryStringParameters 。
request_data = event['queryStringParameters']
startStop = request_data['startStop']
vertical = request_data['vertical']
在映射模板中传入参数值:
{
"startStop":"$input.params('startStop')",
"vertical":"$input.params('vertical')"
}
通过event
对象读取参数值:
startStop = event['startStop']
vertical = event['vertical']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.