在AWS-SDK-GO中使用正则表达式过滤AWS资源

时间:2019-01-03 17:18:15

标签: go amazon-ec2 aws-sdk-go

因此,我有一些不同类型的AWS资源标记为xxx/yyy/<generated_id>。我需要使用go-sdk来获取它们。

这是子网的示例代码,对于其他所有资源,过滤器看起来都相同。

这不起作用。

var resp *ec2.DescribeSubnetsOutput
resp, err = d.ec2Client().DescribeSubnets(&ec2.DescribeSubnetsInput{
    Filters: []*ec2.Filter{
        {
            Name:   aws.String("vpc-id"),
            Values: []*string{&d.VpcId},
        },
        {
            Name:   aws.String(fmt.Sprintf(`tag:"xxx/yyy.[*]"`),
            Values: []*string{aws.String("owned")},
        },
    },
})

这样做: aws ec2 describe-subnets --filters `Name=tag:"xxx/yyy.[*]",Values=owned`

我显然做错了什么,有人可以指出吗?

1 个答案:

答案 0 :(得分:0)

API文档中没有任何内容可以建议DescribeSubnets接受过滤器名称中的正则表达式:https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html

如果它可以在CLI中运行,则CLI可能会在SDK的基础上进行CLI。 Go SDK类似于任何其他AWS开发工具包;它以特定于语言的方式公开AWS API。 AWS CLI在API之上添加了便利功能,以使其在命令行上更加有用,但这并不意味着这些功能由API或任何已发布的SDK公开。