Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Conforme explicado no artigo O que é o SDK do Azure para Go?, o SDK do Azure para Go tem um conjunto de bibliotecas de gerenciamento e cliente. As bibliotecas de gerenciamento compartilham recursos como suporte ao Azure Identity, pipeline HTTP e tratamento de erros. Para obter a lista completa de bibliotecas de gerenciamento, consulte Módulo SDK do Azure para Go.
Neste artigo, você aprenderá as etapas básicas para usar as bibliotecas de gerenciamento para interagir com os recursos do Azure.
Instalando pacotes Go
Na maioria dos projetos, você instala os pacotes Go para controle de versão e gerenciamento de dependência.
Para instalar um pacote Go, execute o go get comando.
Por exemplo, para instalar o armcompute pacote, execute o seguinte comando:
go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute
Na maioria dos aplicativos Go, você instala os seguintes pacotes para autenticação:
- github.com/Azure/azure-sdk-for-go/sdk/azcore/to
- github.com/Azure/azure-sdk-for-go/sdk/azidentity
Importar pacotes para o seu código Go
Depois de baixados, os pacotes são importados para seu aplicativo por meio da import instrução:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)
Autenticando no Azure
Para executar código em uma assinatura do Azure, você precisa se autenticar no Azure. O pacote azidentity dá suporte a várias opções para autenticar no Azure. Essas opções incluem cliente/segredo, certificado e identidade gerenciada.
A opção de autenticação padrão é DefaultAzureCredential, que usa as variáveis de ambiente definidas anteriormente neste artigo. No código Go, você cria um azidentity objeto da seguinte maneira:
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
Criando um cliente de gerenciamento de recursos
Depois de obter uma credencial da Identidade do Azure, crie um cliente para se conectar ao serviço do Azure de destino.
Por exemplo, digamos que você queira se conectar ao serviço de computação do Azure . O pacote Compute consiste em um ou mais clientes. Um cliente agrupa um conjunto de APIs relacionadas, fornecendo acesso à sua funcionalidade dentro da assinatura especificada. Você cria um ou mais clientes para acessar as APIs necessárias.
O código a seguir usa o armcompute. NewVirtualMachinesTipo de cliente para criar um cliente para gerenciar máquinas virtuais:
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
O mesmo padrão é usado para se conectar a outros serviços do Azure. Por exemplo, instale o pacote armnetwork e crie um cliente de rede virtual para gerenciar recursos de rede virtual (VNET).
client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
Exemplo de código:
package main
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)
func main() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
// handle error
}
client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
// handle error
}
}
Usando a documentação de referência do SDK do Azure para Go
Depois de instanciar um cliente, use-o para fazer chamadas de API para seus recursos do Azure. Para cenários de gerenciamento de recursos, a maioria dos casos de uso são operações CRUD (criar, ler, atualizar, excluir).
Para localizar operações para um tipo específico, siga estas etapas:
- Vá para a documentação de referência do SDK do Azure para Go.
- Procure o pacote. (Pressionar <Ctrl+F> expande automaticamente todos os nós na página para efeitos de pesquisa.)
- Selecione o pacote.
- Procure o tipo na página do pacote.
- Leia a descrição do tipo e as informações de uso do seu código Go.
Você também pode criar manualmente a URL anexando o nome do pacote ao github.com/Azure/azure-sdk-for-go/sdk/.
Por exemplo, se pretender a documentação de compute/armcompute referência, o URL é github.com/Azure/azure-sdk-for-go/sdk/compute/armcompute.
Este exemplo mostra como localizar a documentação de referência para operações de grupo de recursos do Azure:
- Vá para a documentação de referência principal do SDK do Azure para Go no pkg.go.dev.
- Selecione <Ctrl+F> e digite
resourcemanager/resources/armresources. Ao digitar o termo de pesquisa, você verá uma correspondência estreita com o pacote resources/armresources . - Selecione o pacote apropriado para sua aplicação.
- Leia a seção "Introdução" ou procure uma operação específica. Por exemplo, pesquisar por "resourcegroupsclient.create" (para criar um grupo de recursos) leva você à função CreateOrUpdate.
- Leia como fazer a chamada de API para criar um grupo de recursos do Azure.
Operações de longa duração
Algumas operações podem levar muito tempo para serem concluídas, portanto, as bibliotecas de gerenciamento têm funções que oferecem suporte a operações de longa execução (LRO) por meio de chamadas assíncronas. Esses nomes de função começam com Begin, como BeginCreate e BeginDelete.
Como essas funções são assíncronas, seu código não é bloqueado enquanto a função termina sua tarefa. Em vez disso, a função retorna um objeto poller imediatamente. Em seguida, o código chama uma função de poller síncrono que retorna quando a função assíncrona original é concluída.
O trecho de código a seguir mostra um exemplo desse padrão.
ctx := context.Background()
// Call an asynchronous function to create a client. The return value is a poller object.
poller, err := client.BeginCreate(ctx, "resource_identifier", "additional_parameter")
if err != nil {
// handle error...
}
// Call the poller object's PollUntilDone function that will block until the poller object
// has been updated to indicate the task has completed.
resp, err = poller.PollUntilDone(ctx, nil)
if err != nil {
// handle error...
}
// Print the fact that the LRO completed.
fmt.Printf("LRO done")
// Work with the response ("resp") object.
Pontos principais:
- A
PollUntilDonefunção requer um intervalo de sondagem que especifica com que frequência deve tentar obter o status. - O intervalo é normalmente curto. Consulte a documentação do recurso específico do Azure para obter os intervalos recomendados.
- A seção LRO da página Go Azure SDK Design Guidelines tem um exemplo mais avançado e diretrizes gerais para LRO.