Comece a usar o Alibaba Cloud Go SDK com o Visual Studio Code (VS Code) no Windows.
Pré-requisitos
Go instalado. Instalar o Go no Windows.
VS Code instalado. Configurar um ambiente de desenvolvimento Go no Windows.
Usar o SDK
Usar o projeto de exemplo do OpenAPI Explorer
O download do projeto de exemplo pode falhar. Se isso ocorrer, use o SDK em um projeto existente.
-
Acesse a página API Debugging no OpenAPI Portal. Selecione um produto de nuvem e uma API. Este exemplo usa a API DescribeRegions do ECS. Insira DescribeRegions na barra de pesquisa e clique em nome da API.

-
Na aba Parameter Settings, insira os parâmetros necessários. A aba Document, à direita, fornece a descrição da API, observações, informações de faturamento e detalhes dos parâmetros.
A API DescribeRegions aceita três parâmetros:
Nome do parâmetro
Obrigatório
Descrição
InstanceChargeType
Opcional
As regiões compatíveis variam conforme o método de faturamento. Padrão: PrePaid.
ResourceType
Opcional
As regiões compatíveis variam conforme o tipo de recurso. Padrão: instance.
AcceptLanguage
Opcional
Idioma dos resultados retornados. Padrão: zh-CN.

-
Na aba SDK Sample Code, na coluna mais à direita, selecione uma linguagem de programação e clique em Download Project para baixar o projeto completo do SDK para o seu computador. Em seguida, descompacte o pacote.

No VS Code, clique em File > Open Folder e selecione a pasta descompactada.
-
Clique em Terminal > New Terminal para abrir um terminal na parte inferior.

-
Execute o comando a seguir para atualizar as dependências do módulo.
go mod tidy -
Execute o comando a seguir para rodar o código de exemplo no pacote main.
go run ./main -
Verifique o resultado. Pressione
Ctrl+Fno Terminal e pesquise porstatusCode. Uma resposta"statusCode": 200indica sucesso.
Usar o SDK em um projeto existente
No VS Code, clique em File > Open Folder e crie ou selecione uma pasta de projeto, como
gosdkproject.-
Clique em Terminal > New Terminal e execute
go mod init gosdkprojectspara inicializar o projeto Go.
-
Obtenha o SDK.
No SDK Center, selecione um produto de nuvem, como ECS, defina SDK Version como V2.0 e Language como Go.

-
Instale o SDK.
Copie o comando de instalação para o terminal e execute-o.

-
Crie um arquivo .go. Ao lado do nome do projeto, clique em New File... e insira um nome de arquivo, como
ecsDescribeRegions.go.
-
Inicialize o cliente.
Inicialize o cliente ECS antes de chamar qualquer API do ECS.
ImportanteUse um par de AccessKey para concluir a verificação de identidade ao inicializar o cliente. Obtenha um par de AccessKey antecipadamente. Para obter mais informações sobre como obter um par de AccessKey, consulte Criar um AccessKey.
Após obter o par de AccessKey de um usuário RAM, configure-o nas variáveis de ambiente. Para obter mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
Para obter mais informações sobre como configurar o endpoint, consulte Endpoints.
package main import ( "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient initializes and returns an ECS client. // This function does not accept parameters, but requires that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set. // return *ecs20140526.Client // return error: Returns a non-nil error object if any error occurs during client creation. func CreateClient() (_result *ecs20140526.Client, _err error) { // Initialize the openapi.Config object to configure the ECS client. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Create and return an ECS client instance using the configuration. return ecs20140526.NewClient(config) } -
Chame a API. Consulte a API Documentation da API desejada. O exemplo a seguir chama a API
DescribeRegionsdo ECS.NotaCada API possui um objeto de solicitação separado que segue a convenção de nomenclatura
${APIName}${Request}, comoDescribeRegionsRequest.package main import ( "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient initializes and returns an ECS client. // This function does not accept parameters, but requires that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set. // return *ecs20140526.Client // return error: Returns a non-nil error object if any error occurs during client creation. func CreateClient() (_result *ecs20140526.Client, _err error) { // Initialize the openapi.Config object to configure the ECS client. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Create and return an ECS client instance using the configuration. return ecs20140526.NewClient(config) } // The InvokeApi function calls the DescribeRegions API of ECS to query available region information. // // Return values: // _result: Returns a pointer of the *ecs20140526.DescribeRegionsResponse type, which contains the queried region information. // _err: Returns an error message of the error type. This value is not empty if an error occurs during the call. func InvokeApi()(_result *ecs20140526.DescribeRegionsResponse, _err error) { // Create an ECS client. client, _err := CreateClient() if _err != nil { // If an error occurs during client creation, return the error message directly. return _result, _err } // Create a DescribeRegions request. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Initiate the DescribeRegions request and return the result. return client.DescribeRegions(describeRegionsRequest) } -
Trate exceções.
O Alibaba Cloud Go SDK retorna erros para tratamento padrão de exceções (Tratamento de exceções). Para situações inesperadas, use
paniccomdefererecover. Opanicinterrompe a execução imediatamente. Dentro de um blocodefer, orecovercaptura o pânico e retoma a execução normal.package main import ( "fmt" "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient initializes and returns an ECS client. // This function does not accept parameters, but requires that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set. // return *ecs20140526.Client // return error: Returns a non-nil error object if any error occurs during client creation. func CreateClient() (_result *ecs20140526.Client, _err error) { // Initialize the openapi.Config object to configure the ECS client. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Create and return an ECS client instance using the configuration. return ecs20140526.NewClient(config) } // The InvokeApi function calls the DescribeRegions API of ECS to query available region information. // // Return values: // _result: Returns a pointer of the *ecs20140526.DescribeRegionsResponse type, which contains the queried region information. // _err: Returns an error message of the error type. This value is not empty if an error occurs during the call. func InvokeApi() (_result *ecs20140526.DescribeRegionsResponse, _err error) { // Create an ECS client. client, _err := CreateClient() if _err != nil { // If an error occurs during client creation, return the error message directly. return _result, _err } // Create a DescribeRegions request. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Initiate the DescribeRegions request and return the result. return client.DescribeRegions(describeRegionsRequest) } // This function obtains region information by calling an API, and recovers from and handles exceptions when they occur. func main() { // Use defer only in scenarios such as deep recursion or unexpected errors. defer func() { if err := tea.Recover(recover()); err != nil { // When an exception is caught, handle it based on the exception type. if sdkError, ok := err.(*tea.SDKError); ok { // Print the SDK error message, error code, and related data. fmt.Println(tea.StringValue(sdkError.Message)) fmt.Println(tea.StringValue(sdkError.Code)) fmt.Println(tea.StringValue(sdkError.Data)) } else { // Print other types of error messages. fmt.Println(err) } } }() // Call the API to get the result. result, _ := InvokeApi() // Traverse and print the region information in the result. for _, region := range result.Body.Regions.Region { fmt.Println("regionId: " + tea.StringValue(region.RegionId)) } // Print the RequestId. fmt.Println("RequestId: " + tea.StringValue(result.Body.RequestId)) } -
No terminal, execute
go runpara rodar o código.