AWS CLI или boto3: Пытаетесь получить идентификатор зоны доступности? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь получить идентификатор зоны доступности из CLI AWS или из boto3. Однако, несмотря на документацию, показывающую это, команда возвращает только AZ, а не идентификатор для AZ. Я пропускаю шаг или это просто плохая документация, и т. Д. c?

aws ec2 describe-subnets --region us-east-1

{
        "VpcId": "vpc-054c741523f481755",
        "CidrBlock": "10.150.3.32/27",
        "MapPublicIpOnLaunch": false,
        "State": "available",
        "Ipv6CidrBlockAssociationSet": [],
        "AssignIpv6AddressOnCreation": false,
        "SubnetId": "subnet-0a36ed4643fb511d1",
        "AvailabilityZone": "us-east-1a",
        "DefaultForAz": false,
        "AvailableIpAddressCount": 27,
        "Tags": [
            {
                "Key": "aws:cloudformation:stack-id",
                "Value": "arn:aws:cloudformation:us-east-1:186940489315:stack/dantooine-a-elastic-subnets/dc3f7500-7b39-11ea-a67d-0e763951b664"
            },
            {
                "Key": "aws:cloudformation:stack-name",
                "Value": "dantooine-a-elastic-subnets"
            },
            {
                "Key": "Name",
                "Value": "dantooine-a-elastic-subnets-endpointSubnet"
            },
            {
                "Key": "aws:cloudformation:logical-id",
                "Value": "endpointSubnet"
            }
        ]
    }

Документация показывает:

{
"Subnets": [
    {
        "AvailabilityZone": "us-east-2c",
        "AvailabilityZoneId": "use2-az3",
        "AvailableIpAddressCount": 251,
        "CidrBlock": "10.0.2.0/24",
        "DefaultForAz": false,
        "MapPublicIpOnLaunch": false,
        "State": "available",
        "SubnetId": "subnet-0bb1c79de3EXAMPLE",
        "VpcId": "vpc-0ee975135dEXAMPLE",
        "OwnerId": "111122223333",
        "AssignIpv6AddressOnCreation": false,
        "Ipv6CidrBlockAssociationSet": [],
        "SubnetArn": "arn:aws:ec2:us-east-2:111122223333:subnet/subnet-0bb1c79de3EXAMPLE"
    },

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Если вы хотите sh для просмотра идентификаторов зоны доступности, используйте:

aws ec2 describe-availability-zones --region us-east-1

Будет выведено:

{
    "AvailabilityZones": [
        {
            "State": "available",
            "OptInStatus": "opt-in-not-required",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1a",
            "ZoneId": "use1-az1",
            "GroupName": "us-east-1",
            "NetworkBorderGroup": "us-east-1"
        },
...

Затем вы можете сопоставить эту информацию с любыми подсетями, которые вы создали.

0 голосов
/ 21 апреля 2020

Это прекрасно работает как с awscli, так и с boto3. Например:

import boto3

client = boto3.client('ec2')

subnets = client.describe_subnets()

for subnet in subnets['Subnets']:
    print(subnet['AvailabilityZone'], subnet['AvailabilityZoneId'])

Вывод:

us-east-1b use1-az2
us-east-1e use1-az3
us-east-1d use1-az6
...

Я думаю, что ваша установка awscli и boto3 может быть устаревшей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...