Bash 获取AWS地区的英文名称

Bash 获取AWS地区的英文名称,bash,amazon-web-services,aws-cli,Bash,Amazon Web Services,Aws Cli,我找不到使用AWS CLI检索地区英文名称的方法。 有什么想法吗 我需要在Linux的命令行输出中生成所有AWS区域的英文名称的下表 'ap-northeast-1' => 'Asia Pacific (Tokyo)', 'ap-southeast-1' => 'Asia Pacific (Singapore)', 'ap-southeast-2' => 'Asia Pacific (Sydney)', 'eu-central-1' => 'EU (Frankfurt

我找不到使用AWS CLI检索地区英文名称的方法。 有什么想法吗

我需要在Linux的命令行输出中生成所有AWS区域的英文名称的下表

'ap-northeast-1' => 'Asia Pacific (Tokyo)',
'ap-southeast-1' => 'Asia Pacific (Singapore)',
'ap-southeast-2' => 'Asia Pacific (Sydney)',
'eu-central-1'   => 'EU (Frankfurt)',
'eu-west-1'      => 'EU (Ireland)',
'sa-east-1'      => 'South America (Sao Paulo)',
'us-east-1'      => 'US East (N. Virginia)',
'us-east-2'      => 'US East (Ohio)',
'us-west-1'      => 'US West (N. California)',
'us-west-2'      => 'US West (Oregon)',
'eu-west-2'      => 'EU (London)',
'ca-central-1'   => 'Canada (Central)',
'sa-east-1'      => 'South America (Sao Paulo)',
我不是linux虚拟机的管理员,无法安装Java。

更新:AWS最近更新了他们的文档站点,这导致此解决方案停止工作。我已经更新了下面的代码,使其再次工作。请记住,将来对AWS文档站点结构的任何更改都可能导致其无法再次工作。这只是一个解决办法

根据@jarmod的评论,这样的事情怎么样:

功能:

function getAWSRegionName {
   tmp=$(wget -qO- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.partial.html | awk NF | awk -v pat="<p><code class=\"code\">$1" '$0 ~ pat {for(i=0;i<5;i++) {getline; print}}' | awk -F'[<|>]' '/<p>|<\/p>/ {print $3}'); 
   echo "$1 = $tmp"; 
}

for code in `aws ec2 describe-regions | awk -F'"' '/RegionName/{print $4}'`; do
        getAWSRegionName $code;
done
  • 从AWS文档中提取html页面;将输出传递给下一个命令
  • 从输出中删除空行
  • 将RegionName代码与html中的一行匹配,并将接下来的5行传递给下一个命令
  • 查找具有人类可读的区域名称的行
  • 在一行中打印代码和名称
  • 示例代码(BASH):

    function getAWSRegionName {
       tmp=$(wget -qO- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.partial.html | awk NF | awk -v pat="<p><code class=\"code\">$1" '$0 ~ pat {for(i=0;i<5;i++) {getline; print}}' | awk -F'[<|>]' '/<p>|<\/p>/ {print $3}'); 
       echo "$1 = $tmp"; 
    }
    
    for code in `aws ec2 describe-regions | awk -F'"' '/RegionName/{print $4}'`; do
            getAWSRegionName $code;
    done
    
    函数getAWSRegionName{
    
    tmp=$(wget-qO-https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.partial.html |awk NF | awk-v pat=“$1”$0~pat{for(i=0;i我有一个类似的问题,用下面的代码解决了这个问题:

    REGION_TARGET=us-east-1
    region_name=$(wget -qO- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html\#concepts-available-regions | awk NF | awk -v pat="<p><code class=\"code\">$TARGET_REGION" '$0 ~ pat {for(i=0;i<5;i++) {getline; print}}' | awk -F'[<|>]' '/<p>|<\/p>/ {print $3}');
    
    REGION_TARGET=us-east-1
    
    地区名称=$(wget-qO-https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html\#概念可用区域| awk NF | awk-v pat=“$TARGET\u REGION”'$0~pat{for(i=0;i也遇到了这个问题,Find说您可以使用AWS参数存储查询所有类型的数据。挖掘了一点后,发现了使用AWS CLI的解决方案

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

    您可以在上查看答案。谢谢@junkangli。
    aws lightsail get regions
    不完整,许多区域缺失,JDK太多。我不是linux虚拟机的管理员,无法安装Java。我不相信有命令可以实现这一点。Windows Powershell有以下命令来实现此目的:
    get AWSRegion
    bash中不存在他的命令。但是,如果您希望使用一些最常用的区域,可以使用以下lightsail命令获取区域名称:
    aws lightsail get regions--output table--query'regions[*]。{Name:Name,EnglishName:displayName}“
    它们不会频繁更改,因此您可以使用硬编码列表。或者您可以定期从表中获取精彩答案。直到最近,这对我来说还不错。看起来AWS在界面上做了一些更改。我得到的结果是空的。修复程序再次停止工作。在2020年3月31日恢复正常。今天(2020年4月7日,它不起作用。):(谢谢。这是一个很好的答案。但正如Dmitri在上面所说的,“请记住,将来对AWS文档站点结构的任何更改都可能导致它不再起作用。”我想对我来说,正确的答案将是jarmod的评论“它们不会经常更改,所以您可以使用硬编码列表。”。我使用您的答案自动硬编码列表:)不敢相信我错过了2019年4月以来使用SSM的如此有用的方法!感谢您最后分享了正确的答案