在 aws-sdk-go 中使用正则表达式过滤 AWS 资源
Filter AWS resources using regex in 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 公开。
我最近遇到了这个问题,我的问题是我使用的 sdk 版本;
Filters: [ ]*ec2.Filter{
适用于 v1 sdk mod 并且在我导入 github.com/aws/aws-sdk-go-v2/aws[ 时它不起作用=24=],而
Filters: [ ]types.Filter{
适用于 v2,这个适用于我的情况。
https://aws.amazon.com/blogs/developer/aws-sdk-for-go-version-2-general-availability/
所以我有一些不同类型的 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 公开。
我最近遇到了这个问题,我的问题是我使用的 sdk 版本;
Filters: [ ]*ec2.Filter{
适用于 v1 sdk mod 并且在我导入 github.com/aws/aws-sdk-go-v2/aws[ 时它不起作用=24=],而
Filters: [ ]types.Filter{
适用于 v2,这个适用于我的情况。
https://aws.amazon.com/blogs/developer/aws-sdk-for-go-version-2-general-availability/