go - 在 aws-sdk-go 中使用正则表达式过滤 AWS 资源

标签 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`

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

最佳答案

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/

相关文章:

json - 转到库映射 json 键以清理输出

node.js - 我运行了一个 npm run build,将它放在 nodejs express.static 上,pm2 启动应用程序但无法获取 '/'

amazon-web-services - 使用 AWS Golang 开发工具包检索 AWS Config 规则名称列表

github - CircleCI & Golang - 无法导入 AWS SDK

django - apache的权限问题

amazon-web-services - 函数参数中的 Golang 函数数组

go - 用文件中的模式替换字符串

postgresql - Go Hood 保存到 Postgres,但不确定在哪里

go - 如何读取带有颜色属性的命令输出?

amazon-web-services - 如何配置 Golang 可执行文件以在 AWS 中作为计划作业运行?