amazon-web-services - 尝试运行 Lambda 函数来调用 ssm 并定义 EC2 标签以在多个实例上推送相同的标签
问题描述
尝试运行 Lambda 函数来调用 SSM 并定义 EC2 标签以使用以下脚本在多个实例上推送相同的标签。尝试执行时出现以下错误。我刚刚开始学习编写脚本并第一次使用 aws lambda。请帮我修复。
import boto3
ssm = boto3.client('ssm')
ec2 = boto3.resource('ec2')
def lambda_handler(event, context):
filters = (
Name = 'tag:Product',
Values = ['Essay']
)
instances = ('filters')
response = ssm.send_command(
InstanceIds=instances,
DocumentName='xxxxxxxxxxxxx',
DocumentVersion='$DEFAULT',
DocumentHash='916fdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdcdbe7940',
DocumentHashType='Sha256'
)
print(response)
错误 :
Response:
{
"errorMessage": "Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line 7)",
"errorType": "Runtime.UserCodeSyntaxError",
"stackTrace": [
" File \"/var/task/lambda_function.py\" Line 7\n Name = 'tag:Product',\n"
]
}
Request ID:
"8cb4cd39-b744-41da-befb-5f60b6e49fa4"
Function logs:
START RequestId: 8cb4cd39-b744-41da-befb-5f60b6e49fa4 Version: $LATEST
[ERROR] Runtime.UserCodeSyntaxError: Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line 7)
Traceback (most recent call last):
File "/var/task/lambda_function.py" Line 7
Name = 'tag:Product',END RequestId: 8cb4cd39-b744-41da-befb-5f60b6e49fa4
REPORT RequestId: 8cb4cd39-b744-41da-befb-5f60b6e49fa4
解决方案
有几个问题:
错误的缩进。
python中没有这样的东西
filters = (
Name = 'tag:Product',
Values = ['Essay']
)
也许你的意思是字典?:
filters = {
'Name':'tag:Product',
'Values': ['Essay']
}
InstanceIds=instances
应该是字符串列表,而不是'filters'
.
修复代码的结束时间如下:
import boto3
ssm = boto3.client('ssm')
ec2 = boto3.resource('ec2')
def lambda_handler(event, context):
filters = [{
'Name':'tag:Product',
'Values': ['Essay']
}]
instances = [instance.id for instance in ec2.instances.filter(Filters = filters)]
response = ssm.send_command(
InstanceIds=instances,
DocumentName='xxxxxxxxxxxxx',
DocumentVersion='$DEFAULT',
DocumentHash='916fdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdcdbe7940',
DocumentHashType='Sha256'
)
print(response)
推荐阅读
- ruby-on-rails - 由于未安装 webpack CLI,Heroku 构建失败 - Rails 6
- swiftui - 在 SwiftUI 中使用 UserDefaults 进行全局更新
- javascript - 在 React 中,如何更新 type="number" 的输入字段的值
- python - 如何在同一页面上运行多处理?
- angular - 以角度形式使用局部变量
- airflow-scheduler - Apache Airflow - 即使定义了 start_date 和 schedule_interval,Dag 也不会启动
- r - 无法在 ggmap::qmplot 中运行最简单的示例(错误:没有适用于 'as.raster' 的方法应用于“NULL”类的对象)
- javascript - *Uncaught (in promise) TypeError:) 无法从 MongoDB Atlas 检索数组/集合
- macos - 如何在 MacOS 中为所有应用程序*永久*设置一个变量?
- java - 只需要 Java 循环一次并创建单个列/行