3

我想使用 boto3 创建 AWS 资源组。在资源组中,我想添加带有标签“name”:“Jenkins”的 ec2 实例。下面是 boto3 文档中建议的语法。

response = client.create_group(
    Name='string',
    Description='string',
    ResourceQuery={
        'Type': 'TAG_FILTERS_1_0'|'CLOUDFORMATION_STACK_1_0',
        'Query': 'string'
    },
    Tags={
        'string': 'string'
    }
)

我阅读了文档,但我不明白我的情况是什么查询,也找不到任何在线使用 boto3 创建资源组的示例。在 ResourceQuery 字典中,我可以使用“类型”作为“TAG_FILTERS_1_0”,但不确定“查询”是什么。如果我能获得创建资源组的示例说明,那就太好了。谢谢

更新 遵循@Jarmod 的建议后,我尝试了以下代码

client = boto3.client('resource-groups', **conn_args)
    response = client.create_group(
        Name='JenkinsResource',
        Description='JenkinsResourceGrp',
        ResourceQuery={
            'Type': 'TAG_FILTERS_1_0',
            'Query': [{"Key": "name", "Values": "Jenkins"}]
        }

    )

我最终遇到了以下错误。

参数 ResourceQuery.Query 的类型无效,值:[{'Key': 'name', 'Values': 'Jenkins'}],类型:,有效类型:

4

1 回答 1

3

我能够让它与 Query 对象一起工作:

{
    'ResourceTypeFilters': ['AWS::AllSupported'],
    'TagFilters': [{
        'Values': ['Jenkins'],
        'Key': 'name'
    }]
}

然后因为它需要一个字符串而不是一个 json 对象,所以我做了一个 json.dumps(query)。

我通过 Web 控制台生成它,然后查看 CloudTrail 日志以了解控制台做了什么,从而发现了这一点 :)

于 2019-08-22T08:48:45.347 回答