亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否有 Amazon API 來獲取 Nice Region 名稱而不是 us-west1?

是否有 Amazon API 來獲取 Nice Region 名稱而不是 us-west1?

Go
ITMISS 2022-12-19 10:40:04
我正在使用以下 API 來檢索亞馬遜區域列表。但是,它基本上將區域返回為“us-west1,us-west2”等。有沒有辦法從 API 中獲取區域名稱,輸出如“美國西部(加利福尼亞北部)”,“美國西部(俄勒岡州) )”?    // Get a list of regions from our default region    svc := ec2.NewFromConfig(cfg)    result, err := svc.DescribeRegions(context.TODO(), &ec2.DescribeRegionsInput{})    if err != nil {        return nil, err    }    var regions []portaineree.Pair    for _, region := range result.Regions {        fmt.Println("region.Name=", *region.RegionName)       // do something with region...    }
查看完整描述

2 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

您可以使用 SSM 代理獲取區域列表,并提取每個區域的長名稱:


package main


import (

    "log"

    "strings"


    "github.com/aws/aws-sdk-go/aws"

    "github.com/aws/aws-sdk-go/aws/session"

    "github.com/aws/aws-sdk-go/service/ssm"

)


func main() {

    // Build a AWS SSM Agent

    sess := session.Must(session.NewSessionWithOptions(session.Options{

        SharedConfigState: session.SharedConfigEnable,

    }))


    // We're requesting global data, the region doesn't matter

    svc := ssm.New(sess, &aws.Config{Region: aws.String("us-east-1")})

    var nextToken *string

    for {

        // Request all regions, paginating the results if needed

        var input = &ssm.GetParametersByPathInput{

            Path:      aws.String("/aws/service/global-infrastructure/regions"),

            NextToken: nextToken,

        }

        var output, err = svc.GetParametersByPath(input)

        if err != nil {

            log.Fatal(err)

        }


        // For each region, get the "longName" for the region

        for _, element := range output.Parameters {

            region := (*element.Name)[strings.LastIndex(*element.Name, "/")+1:]


            var regionInfo, err = svc.GetParameter(&ssm.GetParameterInput{

                Name: aws.String("/aws/service/global-infrastructure/regions/" + region + "/longName"),

            })

            if err != nil {

                log.Fatal(err)

            }


            regionDesc := *regionInfo.Parameter.Value


            // Just output the region and region description

            log.Println(region, " = ", regionDesc)

        }


        // Pull in the next page of regions if needed

        nextToken = output.NextToken

        if nextToken == nil {

            break

        }

    }

}



查看完整回答
反對 回復 2022-12-19
?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

如果可以的話,這可以通過 CLI 命令很容易地完成


region=us-east-1

aws ssm get-parameter --name /aws/service/global-infrastructure/regions/$region/longName --query "Parameter.Value" --output text```



查看完整回答
反對 回復 2022-12-19
  • 2 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號