

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á.

# Serviço de metadados de instância do Amazon EC2
<a name="sdk-utilities-ec2-imds"></a>

 Você pode usar o AWS SDK para Go para acessar o [Serviço de metadados de instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html). O pacote [feature/ec2/imds](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/feature/ec2/imds) do Go fornece um tipo de [Cliente](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/feature/ec2/imds#Client) que pode ser usado para acessar o serviço de metadados de instância do Amazon EC2. As operações de `Client` e associadas podem ser usadas de forma semelhante aos outros clientes de serviço da AWS fornecidos pelo SDK. Consulte mais informações sobre como configurar o SDK e usar clientes de serviço em [Configurar o SDK](configure-gosdk.md) e [Usar o AWS SDK para Go v2 com serviços da AWS](use-services.md). 

 O cliente pode ajudar a recuperar facilmente informações sobre instâncias nas quais as aplicações são executadas, como a região da AWS ou endereço IP local. Normalmente, você precisa criar e enviar solicitações HTTP para recuperar os metadados da instância. Em vez disso, crie um `imds.Client` para acessar o serviço de metadados de instância do Amazon EC2 usando um cliente programático como outros serviços da AWS. 

 Por exemplo, para construir um cliente: 

```
import "context"
import "github.com/aws/aws-sdk-go-v2/config"
import "github.com/aws/aws-sdk-go-v2/feature/ec2/imds"

// ...

cfg, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
    log.Printf("error: %v", err)
    return
}

client := imds.NewFromConfig(cfg)
```

 Então, use o cliente de serviço para recuperar informações de uma categoria de metadados, como `local-ipv4` (o endereço IP privado da instância). 

```
localIp, err := client.GetMetadata(context.TODO(), &imds.GetMetadataInput{
    Path: "local-ipv4",
})
if err != nil {
    log.Printf("Unable to retrieve the private IP address from the EC2 instance: %s\n", err)
    return
}
content, _ := io.ReadAll(localIp.Content)
fmt.Printf("local-ip: %v\n", string(content))
```

 Consulte uma lista de todas as categorias de metadados em [Categorias de metadados de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-categories) no Guia do usuário do Amazon EC2. 