

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Apêndice A — Obtendo o ID da zona de disponibilidade
<a name="appendix-a-getting-the-availability-zone-id"></a>

 Se estiver usando o AWS SDK do .NET (assim como outros, como JavaScript) ou executando o sistema em uma instância do EC2 (incluindo o Amazon ECS e Amazon EKS), você pode obter o ID da zona de disponibilidade diretamente. 
+  **AWS SDK do .NET** 

  ```
  Amazon.Util.EC2InstanceMetadata.GetData(“/placement/availability-zone-id”)
  ```
+  **Serviço de metadados da instância EC2** 

  ```
  curl http://169.254.169.254/latest/meta-data/placement/availability-zone-id
  ```

   Em outras plataformas, como Lambda e Fargate, você precisará recuperar o nome da zona de disponibilidade e, em seguida, encontrar o mapeamento para o ID da zona de disponibilidade. Com o nome da zona de disponibilidade, você pode encontrar o ID da zona de disponibilidade da seguinte forma: 

  ```
  aws ec2 describe-availability-zones --zone-names $AZ --output json
      --query ‘AvailabilityZones[0].ZoneId’
  ```

   Os exemplos a seguir para encontrar o nome da zona de disponibilidade a serem usados no exemplo acima foram criados em bash usando o AWS CLI e o pacote [jq](https://stedolan.github.io/jq/). Eles deverão ser convertidos para a linguagem de programação usada para seu workload. 
  +  **Amazon ECS** – Se o serviço de metadados de instância (IMDS) estiver bloqueado pelo host, você poderá usar o arquivo de metadados do contêiner. 

    ```
    AZ=$(cat $ECS_CONTAINER_METADATA_FILE | jq –-raw-output
        .AvailabilityZone)
    ```
  +  **Fargate** (versão da plataforma 1.4 ou posterior) 

    ```
    AZ=$(curl $ECS_CONTAINER_METADATA_URI_V4/task | jq --raw-output
        .AvailabilityZone)
    ```
  +  **Lambda** – A zona de disponibilidade não é exposta diretamente à função. Para encontrá-la, você precisa executar várias etapas. Para fazer isso, crie um endpoint REST privado do API Gateway que retorne o endereço IP do solicitante. Isso identificará o IP privado atribuído à interface de rede elástica que está sendo usada pela função. 
    +  Chame a API `GetFunction` do Lambda para encontrar o ID da VPC da função. 
    +  Chame o serviço API Gateway para obter o IP da função. 
    +  Usando o IP e o ID da VPC, encontre a interface de rede associada e extraia a zona de disponibilidade. 

    ```
    VPC_ID=$(aws lambda get-function --function-name $ AWS_LAMBDA_FUNCTION_NAME --region $AWS_REGION --output json --query ‘Configuration.VpcConfig.VpcId’)
    
    MY_IP=$(curl http://whats-my-private-ip.internal)
    
    AZ=$(aws ec2 describe-network-interfaces --filters Name=private-ip-address,Values=$MY_IP Name=vpc-id,Values=$VPC_ID --region $AWS_REGION --output json –query ‘NetworkInterfaces[0].AvailabilityZone’)
    ```