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 EC2 instâncias da Amazon
Você pode usar o AWS SDK para Go para acessar o Amazon EC2 Instance Metadata Service. O pacote feature/ec2/imdsClient
operações associadas podem ser usadas de forma semelhante aos outros clientes AWS de serviço fornecidos pelo SDK. Para saber mais informações sobre como configurar o SDK e usar clientes de serviço, consulte Configurar o SDK e. Use a AWS SDK para Go v2 com serviços AWS
O cliente pode ajudá-lo a recuperar facilmente informações sobre instâncias nas quais seus aplicativos são executados, como sua AWS região 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 Amazon EC2 Instance Metadata Service usando um cliente programático como outros AWS
serviços.
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)
Em seguida, 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))
Para obter uma lista de todas as categorias de metadados, consulte Categorias de metadados de instância no Guia EC2 do usuário da Amazon.