所以我有一些不同类型的 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`
我显然做错了什么,有人可以指出什么吗?
最佳答案
API 文档中没有任何内容表明 DescribeSubnets
接受过滤器名称中的正则表达式:https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html
如果它在 CLI 中工作,那很可能是 CLI 在 SDK 提供的功能之上做的事情。 Go SDK 与任何其他 AWS SDK 一样;它以特定于语言的方式公开 AWS API。 AWS CLI 在 API 之上添加了便利功能,使其在命令行上更有用,但这并不意味着这些功能由 API 或任何已发布的 SDK 公开。
关于go - 在 aws-sdk-go 中使用正则表达式过滤 AWS 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026903/