Este tópico descreve como instale o Alibaba Cloud SDK V1.0 para Go e chamar operações de API no seu projeto.
O suporte ao Alibaba Cloud SDK V1.0 para Go foi encerrado. Para mais detalhes, consulte Fim do suporte ao Alibaba Cloud SDK V1.0 para Golang em 1º de março de 2025. Use o Alibaba Cloud SDK V2.0 para Go como alternativa.
Pré-requisitos
Antes de começar, verifique se você tem:
Go 1.10.x ou versão posterior instalada. Para verificar a versão do Go, execute:
go version
Instale o SDK
A instalação de um SDK de serviço em nuvem instala automaticamente a biblioteca principal. Instale apenas o SDK específico do serviço.
SDK de serviço em nuvem
O SDK de serviço em nuvem fornece objetos de solicitação e resposta para chamar operações de API. O exemplo a seguir instala o SDK do Elastic Compute Service (ECS).
Se o seu projeto não tiver um arquivo go.mod, inicialize um módulo Go primeiro:
go mod init <your-module-name>
Execute o seguinte comando no terminal:
go get github.com/aliyun/alibaba-cloud-sdk-go/services/ecs
Os pacotes do SDK seguem o formato de nomenclatura: github.com/aliyun/alibaba-cloud-sdk-go/services/${service-code}.
Biblioteca principal
A biblioteca principal inclui o objeto cliente, a lógica de assinatura e o tratamento de erros. Instale-a separadamente apenas se precisar fazer chamadas de API genéricas:
go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk
Usar o SDK
O exemplo a seguir chama a operação de API DescribeInstances do ECS em três etapas: inicializar um cliente, crie um objeto de solicitação e enviar a solicitação.
Etapa 1: Inicializar um cliente
Todas as chamadas de API passam pelo objeto cliente. Inicialize o cliente antes de fazer qualquer chamada de API. Este exemplo usa um par de AccessKey para autenticação. Para outras opções de credenciais, consulte Gerencie credenciais de acesso.
Este exemplo lê o par de AccessKey das variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET. Defina essas variáveis antes de executar o código. Para obter instruções, consulte Configure variáveis de ambiente no Linux, macOS e Windows. Não codifique suas credenciais diretamente no source.
import (
"os"
"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)
func main() {
config := sdk.NewConfig()
credential, err := credentials.NewStaticAKCredentialsProviderBuilder().
WithAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
WithAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
Build()
if err != nil {
panic(err)
}
// Initialize the ECS client for the cn-hangzhou region
ecsClient, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
if err != nil {
panic(err)
}
}
Etapa 2: Crie um objeto de solicitação
Use o objeto de solicitação do SDK para defina os parâmetros da API.
Nomeie o objeto de solicitação da operação de API no seguinte formato: <API operation name>Request.
// Add "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" to your imports.
// Create a DescribeInstances request object.
request := ecs.CreateDescribeInstancesRequest()
request.InstanceIds = "[\"i-bp1dXXXXXXXXXXXX\"]"
request.PageSize = requests.Integer("100")
request.PageNumber = requests.Integer("1")
Etapa 3: Enviar a solicitação
Passe o objeto de solicitação para o método do cliente correspondente à operação de API. O cliente usa as credenciais e configurações definidas na Etapa 1.
response, err := ecsClient.DescribeInstances(request)
if err != nil {
panic(err)
}
fmt.Print(response.GetHttpContentString())
Referências
Para configurações de proxy, timeout e outras opções avançadas, consulte Configurações avançadas.
Para crie um par de AccessKey, consulte Criar um par de AccessKey.