Amazon ec2 AWS EC2系统管理器参数类型
我正在尝试使用AmazonEC2SystemsManager()创建一个“自动化”文档类型,以便(除其他外)标记刚刚创建的AMI 您可以在“mainSteps”中以预先确定的方式创建标记: 但要使用数量可变的标记进行标记,我假设需要进行以下更改:Amazon ec2 AWS EC2系统管理器参数类型,amazon-ec2,amazon-systems-manager,Amazon Ec2,Amazon Systems Manager,我正在尝试使用AmazonEC2SystemsManager()创建一个“自动化”文档类型,以便(除其他外)标记刚刚创建的AMI 您可以在“mainSteps”中以预先确定的方式创建标记: 但要使用数量可变的标记进行标记,我假设需要进行以下更改: ... { "name": "CreateTags", "action": "aws:createTags", "maxAttempts": 3, "onFailure": "Abort", "inputs": { "Res
...
{
"name": "CreateTags",
"action": "aws:createTags",
"maxAttempts": 3,
"onFailure": "Abort",
"inputs": {
"ResourceType": "EC2",
"ResourceIds": ["{{ CreateImage.ImageId }}"],
"Tags": {{ Tags }}
}
},
...
添加了一个名为“Tags”的新参数,类型为“MapList”:
"parameters": {
"Tags": {
"type": "MapList"
}
}
因为运行该进程是在抱怨我使用了“String”类型,并说我应该使用“MapList”
“MapList”被列为AmazonEC2SystemsManager()的一种参数类型,但我还并没有找到任何关于如何定义这种类型的文档
根据我从上面的“硬编码”示例中看到的内容和其他API中的其他标记方法,我猜测了几种格式,但都没有用:
[ { "Key": "Name", "Value": "newAmi" } ]
[ { "Key": "Name", "Values": [ "newAmi" ] } ]
1: { "Key": "Name", "Values": [ "newAmi" ] }
有人知道如何定义AmazonEC2SystemsManager引入的新参数类型(特别是“映射列表”)吗
更新:
由于缺少文档,Amazon支持人员正在询问自动化团队如何使用此方法最好地标记ami。我发现了如何在控制台中添加单个标记作为参数值,不过:
{ "Key": "TagName", "Value": "TagValue" }
我尝试添加多个标记将允许自动启动:
{ "Key": "TagName1", "Value": "TagValue1" }, { "Key": "TagName2", "Value": "TagValue2" }
但最终会在运行时返回此一般错误:
Internal Server Error. Please refer to Automation Service Troubleshooting
Guide for more diagnosis details
阵列中似乎缺少[],但您似乎可以免费获得这些,因为当我添加它们时,会出现以下错误:
Parameter type error. [[ { "Key": "Description", "Value": "Desc" },
{ "Key": "Name", "Value": "Nm" } ]] is defined as MapList.
感谢您使用EC2 Systems Manager的自动化功能。这是我测试过的文档,它是有效的
{
"schemaVersion": "0.3",
"description": "Test tags.",
"assumeRole": "arn:aws:iam::123456789012:role/TestRole",
"parameters": {
"Tags": {
"default": [{
"Key": "TagName1",
"Value": "TagValue1"
},
{
"Key": "TagName2",
"Value": "TagValue2"
}],
"type": "MapList"
}
},
"mainSteps": [
{
"name": "CreateTags",
"action": "aws:createTags",
"maxAttempts": 3,
"onFailure": "Abort",
"inputs": {
"ResourceType": "EC2",
"ResourceIds": [
"i-12345678"
],
"Tags": "{{ Tags }}"
}
}
]
}
感谢您使用EC2 Systems Manager的自动化功能。这是我测试过的文档,它是有效的
{
"schemaVersion": "0.3",
"description": "Test tags.",
"assumeRole": "arn:aws:iam::123456789012:role/TestRole",
"parameters": {
"Tags": {
"default": [{
"Key": "TagName1",
"Value": "TagValue1"
},
{
"Key": "TagName2",
"Value": "TagValue2"
}],
"type": "MapList"
}
},
"mainSteps": [
{
"name": "CreateTags",
"action": "aws:createTags",
"maxAttempts": 3,
"onFailure": "Abort",
"inputs": {
"ResourceType": "EC2",
"ResourceIds": [
"i-12345678"
],
"Tags": "{{ Tags }}"
}
}
]
}
谢谢@Cooper.Wu。如果我更改assumeRole/ResourceId并从CLI运行,该示例将按原样工作,但这在控制台中不起作用,并且会抱怨标记的默认值:
参数类型错误。[[{“Key”:“TagName1”,“Value”:“TagValue1”},{“Key”:“TagName2”,“Value”:“TagValue2”}]]定义为映射列表。
更重要的是,如果我在CLI中输入自己的标记值,而不输入周围的“[]”s(有问题的错误),它在运行时仍然会失败:内部服务器错误。有关更多诊断详细信息,请参阅《自动化服务故障排除指南》
。有什么建议吗?谢谢@Cooper.Wu。如果我更改assumeRole/ResourceId并从CLI运行,该示例将按原样工作,但这在控制台中不起作用,并且会抱怨标记的默认值:参数类型错误。[[{“Key”:“TagName1”,“Value”:“TagValue1”},{“Key”:“TagName2”,“Value”:“TagValue2”}]]定义为映射列表。
更重要的是,如果我在CLI中输入自己的标记值,而不输入周围的“[]”s(有问题的错误),它在运行时仍然会失败:内部服务器错误。有关更多诊断详细信息,请参阅《自动化服务故障排除指南》
。有什么建议吗?