Use perfis de versão API com Go in Azure Stack Hub

Ir e ver os perfis

Um perfil é uma combinação de diferentes tipos de recursos com diferentes versões de diferentes serviços. A utilização de um perfil ajuda-o a misturar e a combinar entre diferentes tipos de recursos. Os perfis podem fornecer os seguintes benefícios:

  • Estabilidade para a sua aplicação bloqueando versões API específicas.
  • Compatibilidade para a sua aplicação com o Azure Stack Hub e os centros de dados regionais Azure.

No Go SDK, os perfis estão disponíveis no caminho dos perfis. Os números da versão de perfil estão rotulados no formato YYYYY-MM-DD. A mais recente versão de perfil Azure Stack Hub API é 2020-09-01 para as versões Azure Stack Hub 1904 ou posterior. Para importar um determinado serviço a partir de um perfil, importe o módulo correspondente do perfil. Por exemplo, para importar o serviço Compute a partir do perfil 2020-09-01, utilize o seguinte código:

import "github.com/Azure/azure-sdk-for-go/profiles/2020-09-01/compute/mgmt/compute"

Instale o Azure SDK para Go

  1. Instale Git. Para obter instruções, consulte "Começar " - Instalar git.

  2. Instale a linguagem de programação Go. Os perfis API para Azure requerem a versão 1.9 ou mais recente.

  3. Instale o Azure Go SDK e as suas dependências executando o seguinte comando de bash:

    go get -u -d github.com/Azure/azure-sdk-for-go/...
    

O Go SDK

Pode encontrar mais informações sobre o Azure Go SDK nos seguintes links:

Go-AutoRest dependências

O Go SDK depende dos módulos Azure Go-AutoRest para enviar pedidos de REST para os pontos finais do Azure Resource Manager. Deve importar as dependências do módulo Azure Go-AutoRest da Azure Go-AutoRest em GitHub. Pode encontrar os comandos de festa de instalação na secção Instalar.

Como usar perfis Go SDK no Azure Stack Hub

Para executar uma amostra do código Go no Azure Stack Hub, siga estes passos:

  1. Instale o Azure SDK para Go e as suas dependências. Para obter instruções, consulte a secção anterior, instale Azure SDK para ir.

  2. Obtenha a informação de metadados no ponto final do Gestor de Recursos. O ponto final devolve um ficheiro JSON com a informação necessária para executar o seu código Go.

    Nota

    O ResourceManagerUrl no Kit de Desenvolvimento da Pilha de Azure (ASDK) é:
    O ResourceManagerUrl em sistemas integrados é:
    Para recuperar os metadados necessários: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0

    Ficheiro JSON da amostra:

    { "galleryEndpoint": "https://portal.local.azurestack.external:30015/",  
      "graphEndpoint": "https://graph.windows.net/",  
      "portal Endpoint": "https://portal.local.azurestack.external/",
      "authentication": {
        "loginEndpoint": "https://login.windows.net/",
        "audiences": ["https://management.<yourtenant>.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
      }
    }
    
  3. Se não estiver disponível, crie uma subscrição e guarde o ID de subscrição para ser usado mais tarde. Para obter informações sobre a criação de uma subscrição, consulte Criar subscrições para ofertas no Azure Stack Hub.

  4. Crie um principal de serviço que utilize um segredo de cliente, com âmbito de subscrição e função de Proprietário. Guarde a identificação principal do serviço e o segredo. Para obter informações sobre a criação de um principal serviço para o Azure Stack Hub, consulte utilizar uma identidade de aplicação para aceder a recursos. O seu ambiente Azure Stack Hub está agora montado.

  5. Importe um módulo de serviço do perfil Go SDK no seu código. A versão atual do perfil Azure Stack Hub é 2020-09-01. Por exemplo, para importar um módulo de rede a partir do tipo de perfil 2020-09-01, utilize o seguinte código:

    package main
     import "github.com/Azure/azure-sdk-for-go/profiles/2020-09-01/network/mgmt/network"
    
  6. Na sua função, crie e autense um cliente com uma chamada de função nova cliente. Para criar um cliente de rede virtual, utilize o seguinte código:

    package main
    
    import "github.com/Azure/azure-sdk-for-go/profiles/2020-09-01/network/mgmt/network"
    
    func main() {
       vnetClient := network.NewVirtualNetworksClientWithBaseURI("<baseURI>", "(subscriptionID>")
       vnetClient.Authorizer = autorest.NewBearerAuthorizer(token)
    

    De <baseURI> acordo com o valor <baseURI> utilizado no passo 2. <subscriptionID>Desaprova o valor <subscriptionID> guardado do passo 3.

    Para criar o símbolo, consulte a próxima secção.

  7. Invoque os métodos da API utilizando o cliente que criou no passo anterior. Por exemplo, para criar uma rede virtual utilizando o cliente a partir do passo anterior, consulte o seguinte exemplo:

    package main
    
    import "github.com/Azure/azure-sdk-for-go/profiles/2020-09-01/network/mgmt/network"
    func main() {
    vnetClient := network.NewVirtualNetworksClientWithBaseURI("<baseURI>", "(subscriptionID>")
    vnetClient .Authorizer = autorest.NewBearerAuthorizer(token)
    
    vnetClient .CreateOrUpdate( )
    

Para um exemplo completo de criação de uma rede virtual no Azure Stack Hub utilizando o perfil Go SDK, veja o exemplo.

Autenticação

Para obter a propriedade Authorizer de Azure Ative Directory usando o Go SDK, instale os módulos Go-AutoRest. Estes módulos já deveriam ter sido instalados com a instalação "Go SDK". Se não estiverem, instale o pacote de autenticação a partir de GitHub.

O Autor deve ser definido como o autor do cliente de recurso. Existem diferentes formas de obter fichas autorizadas no Azure Stack Hub usando credenciais de cliente:

  1. Se estiver disponível um titular de serviço com função de proprietário na subscrição, salte este passo. Caso contrário, consulte uma identidade de aplicação para aceder a recursos para obter instruções sobre a criação de um principal de serviço que utilize um segredo de cliente, e para ajudar a atribuir-lhe uma função de "proprietário" aparada à sua subscrição. Certifique-se de capturar o iD principal da aplicação de serviço e o segredo.

  2. Importe o pacote adal da Go-AutoRest no seu código.

    package main
    import "github.com/Azure/go-autorest/autorest/adal"
    
  3. Crie um oauthConfig utilizando o método NewOAuthConfig a partir de módulo adal.

    package main
    
    import "github.com/Azure/go-autorest/autorest/ada1"
    
    func CreateToken() (adal.OAuthTokenProvider, error) {
       var token adal.OAuthTokenProvider
       oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
    }
    

    Definir <activeDirectoryEndpoint> o valor do loginEndpoint imóvel a partir dos ResourceManagerUrl metadados recuperados na secção anterior deste documento. Desaça o <tenantID> valor para o seu ID de inquilino Azure Stack Hub.

  4. Finalmente, crie um token principal de serviço utilizando o NewServicePrincipalToken método a partir do módulo NewServicePrincipalToken

    package main
    
    import "github.com/Azure/go-autorest/autorest/adal"
    
    func CreateToken() (adal.OAuthTokenProvider, error) {
        var token adal.OAuthTokenProvider
        oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
        token, err = adal.NewServicePrincipalToken(
            *oauthConfig,
            clientID,
            clientSecret,
            activeDirectoryResourceID)
        return token, err
    

    Definido <activeDirectoryResourceID> como um dos valores na lista de "público" dos metadados <activeDirectoryResourceID> recuperados na secção anterior deste artigo. Definir <clientID> para o ID principal de aplicação de serviço guardado quando o diretor de serviço foi criado na secção anterior deste artigo. De <clientSecret> acordo com o segredo de aplicação principal do serviço guardado quando o diretor de serviço foi criado na secção anterior deste artigo.

Exemplo

Este exemplo mostra uma amostra do código Go que cria uma rede virtual no Azure Stack Hub. Para obter exemplos completos do Go SDK, consulte o repositório de amostras Azure Go SDK. As amostras do Azure Stack Hub estão disponíveis em Azure-Samples/Hybrid-Golang-Samples: Getting Started with Compute - Create Virtual Machines using Golang on Azure Stack hybrid cloud (github.com)

Nota

Para executar o código neste exemplo, verifique se a subscrição utilizada tem o fornecedor de recursos da Rede listado como Registado. Para verificar, procure a subscrição no portal Azure Stack Hub e selecione fornecedores de Recursos.

  1. Importe os pacotes necessários no seu código. Utilize o perfil mais recente disponível no Azure Stack Hub para importar o módulo de rede:

    package main
    
    import (
        "context"
        "fmt"
        "github.com/Azure/azure-sdk-for-go/profiles/2020-09-01/network/mgmt/network"
        "github.com/Azure/go-autorest/autorest"
        "github.com/Azure/go-autorest/autorest/adal"
        "github.com/Azure/go-autorest/autorest/to"
    )
    
  2. Defina as variáveis ambientais. Para criar uma rede virtual, é necessário ter um grupo de recursos.

    var (
        activeDirectoryEndpoint = "yourLoginEndpointFromResourceManagerUrlMetadata"
        tenantID = "yourAzureStackTenantID"
        clientID = "yourServicePrincipalApplicationID"
        clientSecret = "yourServicePrincipalSecret"
        activeDirectoryResourceID = "yourAudienceFromResourceManagerUrlMetadata"
        subscriptionID = "yourSubscriptionID"
        baseURI = "yourResourceManagerURL"
        resourceGroupName = "existingResourceGroupName"
    )
    
  3. Agora que definiu as variáveis ambientais, adicione um método para criar um token de autenticação utilizando o pacote adal. Para obter mais informações sobre a autenticação, consulte a secção anterior.

    //CreateToken creates a service principal token
    func CreateToken() (adal.OAuthTokenProvider, error) {
       var token adal.OAuthTokenProvider
       oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
       token, err = adal.NewServicePrincipalToken(
           *oauthConfig,
           clientID,
           clientSecret,
           activeDirectoryResourceID)
       return token, err
    }
    
  4. Adicione o main método. O main método primeiro recebe um símbolo usando o método que é definido no passo anterior. Em seguida, cria um cliente usando um módulo de rede a partir do perfil. Finalmente, cria uma rede virtual.

    package main
    
    import (
       "context"
       "fmt"
       "github.com/Azure/azure-sdk-for-go/profiles/2020-09-01/network/mgmt/network"
       "github.com/Azure/go-autorest/autorest"
       "github.com/Azure/go-autorest/autorest/adal"
       "github.com/Azure/go-autorest/autorest/to"
    )
    
    var (
       activeDirectoryEndpoint = "yourLoginEndpointFromResourceManagerUrlMetadata"
       tenantID = "yourAzureStackTenantID"
       clientID = "yourServicePrincipalApplicationID"
       clientSecret = "yourServicePrincipalSecret"
       activeDirectoryResourceID = "yourAudienceFromResourceManagerUrlMetadata"
      subscriptionID = "yourSubscriptionID"
      baseURI = "yourResourceManagerURL"
      resourceGroupName = "existingResourceGroupName"
    )
    
    //CreateToken creates a service principal token
    func CreateToken() (adal.OAuthTokenProvider, error) {
       var token adal.OAuthTokenProvider
       oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
       token, err = adal.NewServicePrincipalToken(
           *oauthConfig,
           clientID,
           clientSecret,
           activeDirectoryResourceID)
       return token, err
    }
    
    func main() {
       token, _ := CreateToken()
       vnetClient := network.NewVirtualNetworksClientWithBaseURI(baseURI, subscriptionID)
       vnetClient.Authorizer = autorest.NewBearerAuthorizer(token)
       future, _ := vnetClient.CreateOrUpdate(
           context.Background(),
           resourceGroupName,
           "sampleVnetName",
           network.VirtualNetwork{
               Location: to.StringPtr("local"),
               VirtualNetworkPropertiesFormat: &network.VirtualNetworkPropertiesFormat{
                   AddressSpace: &network.AddressSpace{
                       AddressPrefixes: &[]string{"10.0.0.0/8"},
                   },
                   Subnets: &[]network.Subnet{
                       {
                           Name: to.StringPtr("subnetName"),
                           SubnetPropertiesFormat: &network.SubnetPropertiesFormat{
                               AddressPrefix: to.StringPtr("10.0.0.0/16"),
                           },
                       },
                   },
               },
           })
       err := future.WaitForCompletionRef(context.Background(), vnetClient.Client)
       if err != nil {
           fmt.Printf(err.Error())
           return
       }
    }
    

Algumas das amostras de código disponíveis para O Azure Stack Hub utilizando o Go SDK são:

Azure-Samples/Hybrid-Golang-Samples: Começar com o Compute - Criar máquinas virtuais usando Golang na nuvem híbrida Azure Stack (github.com)

Ir e ver os perfis

Um perfil é uma combinação de diferentes tipos de recursos com diferentes versões de diferentes serviços. A utilização de um perfil ajuda-o a misturar e a combinar entre diferentes tipos de recursos. Os perfis podem fornecer os seguintes benefícios:

  • Estabilidade para a sua aplicação bloqueando versões API específicas.
  • Compatibilidade para a sua aplicação com o Azure Stack Hub e os centros de dados regionais Azure.

No Go SDK, os perfis estão disponíveis no caminho dos perfis. Os números da versão de perfil estão rotulados no formato YYYYY-MM-DD. A mais recente versão de perfil Azure Stack Hub API é 2019-03-01 para as versões Azure Stack Hub 1904 ou posterior. Para importar um determinado serviço a partir de um perfil, importe o módulo correspondente do perfil. Por exemplo, para importar o serviço Compute a partir do perfil 2019-03-01, utilize o seguinte código:

import "github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/compute/mgmt/compute"

Instale o Azure SDK para Go

  1. Instale Git. Para obter instruções, consulte "Começar " - Instalar git.

  2. Instale a linguagem de programação Go. Os perfis API para Azure requerem a versão 1.9 ou mais recente.

  3. Instale o Azure Go SDK e as suas dependências executando o seguinte comando de bash:

    go get -u -d github.com/Azure/azure-sdk-for-go/...
    

O Go SDK

Pode encontrar mais informações sobre o Azure Go SDK nos seguintes links:

Go-AutoRest dependências

O Go SDK depende dos módulos Azure Go-AutoRest para enviar pedidos de REST para os pontos finais do Azure Resource Manager. Deve importar as dependências do módulo Azure Go-AutoRest da Azure Go-AutoRest em GitHub. Pode encontrar os comandos de festa de instalação na secção Instalar.

Como usar perfis Go SDK no Azure Stack Hub

Para executar uma amostra do código Go no Azure Stack Hub, siga estes passos:

  1. Instale o Azure SDK para Go e as suas dependências. Para obter instruções, consulte a secção anterior, instale Azure SDK para ir.

  2. Obtenha a informação de metadados no ponto final do Gestor de Recursos. O ponto final devolve um ficheiro JSON com a informação necessária para executar o seu código Go.

    Nota

    O ResourceManagerUrl no Kit de Desenvolvimento da Pilha de Azure (ASDK) é:
    O ResourceManagerUrl em sistemas integrados é:
    Para recuperar os metadados necessários: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0

    Ficheiro JSON da amostra:

    { "galleryEndpoint": "https://portal.local.azurestack.external:30015/",  
      "graphEndpoint": "https://graph.windows.net/",  
      "portal Endpoint": "https://portal.local.azurestack.external/",
      "authentication": {
        "loginEndpoint": "https://login.windows.net/",
        "audiences": ["https://management.<yourtenant>.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
      }
    }
    
  3. Se não estiver disponível, crie uma subscrição e guarde o ID de subscrição para ser usado mais tarde. Para obter informações sobre a criação de uma subscrição, consulte Criar subscrições para ofertas no Azure Stack Hub.

  4. Crie um principal de serviço que utilize um segredo de cliente, com âmbito de subscrição e função de Proprietário. Guarde a identificação principal do serviço e o segredo. Para obter informações sobre a criação de um principal serviço para o Azure Stack Hub, consulte utilizar uma identidade de aplicação para aceder a recursos. O seu ambiente Azure Stack Hub está agora montado.

  5. Importe um módulo de serviço do perfil Go SDK no seu código. A versão atual do perfil Azure Stack Hub é 2019-03-01. Por exemplo, para importar um módulo de rede do tipo de perfil 2019-03-01, utilize o seguinte código:

    package main
     import "github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/network/mgmt/network"
    
  6. Na sua função, crie e autense um cliente com uma chamada de função nova cliente. Para criar um cliente de rede virtual, utilize o seguinte código:

    package main
    
    import "github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/network/mgmt/network"
    
    func main() {
       vnetClient := network.NewVirtualNetworksClientWithBaseURI("<baseURI>", "(subscriptionID>")
       vnetClient.Authorizer = autorest.NewBearerAuthorizer(token)
    

    De <baseURI> acordo com o valor <baseURI> utilizado no passo 2. <subscriptionID>Desaprova o valor <subscriptionID> guardado do passo 3.

    Para criar o símbolo, consulte a próxima secção.

  7. Invoque os métodos da API utilizando o cliente que criou no passo anterior. Por exemplo, para criar uma rede virtual utilizando o cliente a partir do passo anterior, consulte o seguinte exemplo:

    package main
    
    import "github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/network/mgmt/network"
    func main() {
    vnetClient := network.NewVirtualNetworksClientWithBaseURI("<baseURI>", "(subscriptionID>")
    vnetClient .Authorizer = autorest.NewBearerAuthorizer(token)
    
    vnetClient .CreateOrUpdate( )
    

Para um exemplo completo de criação de uma rede virtual no Azure Stack Hub utilizando o perfil Go SDK, veja o exemplo.

Autenticação

Para obter a propriedade Authorizer de Azure Ative Directory usando o Go SDK, instale os módulos Go-AutoRest. Estes módulos já deveriam ter sido instalados com a instalação "Go SDK". Se não estiverem, instale o pacote de autenticação a partir de GitHub.

O Autor deve ser definido como o autor do cliente de recurso. Existem diferentes formas de obter fichas autorizadas no Azure Stack Hub usando credenciais de cliente:

  1. Se estiver disponível um titular de serviço com função de proprietário na subscrição, salte este passo. Caso contrário, consulte uma identidade de aplicação para aceder a recursos para obter instruções sobre a criação de um principal de serviço que utilize um segredo de cliente, e para ajudar a atribuir-lhe uma função de "proprietário" aparada à sua subscrição. Certifique-se de capturar o iD principal da aplicação de serviço e o segredo.

  2. Importe o pacote adal da Go-AutoRest no seu código.

    package main
    import "github.com/Azure/go-autorest/autorest/adal"
    
  3. Crie um oauthConfig utilizando o método NewOAuthConfig a partir de módulo adal.

    package main
    
    import "github.com/Azure/go-autorest/autorest/ada1"
    
    func CreateToken() (adal.OAuthTokenProvider, error) {
       var token adal.OAuthTokenProvider
       oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
    }
    

    Definir <activeDirectoryEndpoint> o valor do loginEndpoint imóvel a partir dos ResourceManagerUrl metadados recuperados na secção anterior deste documento. Desaça o <tenantID> valor para o seu ID de inquilino Azure Stack Hub.

  4. Finalmente, crie um token principal de serviço utilizando o NewServicePrincipalToken método a partir do módulo NewServicePrincipalToken

    package main
    
    import "github.com/Azure/go-autorest/autorest/adal"
    
    func CreateToken() (adal.OAuthTokenProvider, error) {
        var token adal.OAuthTokenProvider
        oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
        token, err = adal.NewServicePrincipalToken(
            *oauthConfig,
            clientID,
            clientSecret,
            activeDirectoryResourceID)
        return token, err
    

    Definido <activeDirectoryResourceID> como um dos valores na lista de "público" dos metadados <activeDirectoryResourceID> recuperados na secção anterior deste artigo. Definir <clientID> para o ID principal de aplicação de serviço guardado quando o diretor de serviço foi criado na secção anterior deste artigo. De <clientSecret> acordo com o segredo de aplicação principal do serviço guardado quando o diretor de serviço foi criado na secção anterior deste artigo.

Exemplo

Este exemplo mostra uma amostra do código Go que cria uma rede virtual no Azure Stack Hub. Para obter exemplos completos do Go SDK, consulte o repositório de amostras Azure Go SDK. As amostras do Azure Stack Hub estão disponíveis sob o caminho híbrido dentro das pastas de serviço do repositório.

Nota

Para executar o código neste exemplo, verifique se a subscrição utilizada tem o fornecedor de recursos da Rede listado como Registado. Para verificar, procure a subscrição no portal Azure Stack Hub e selecione fornecedores de Recursos.

  1. Importe os pacotes necessários no seu código. Utilize o perfil mais recente disponível no Azure Stack Hub para importar o módulo de rede:

    package main
    
    import (
        "context"
        "fmt"
        "github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/network/mgmt/network"
        "github.com/Azure/go-autorest/autorest"
        "github.com/Azure/go-autorest/autorest/adal"
        "github.com/Azure/go-autorest/autorest/to"
    )
    
  2. Defina as variáveis ambientais. Para criar uma rede virtual, é necessário ter um grupo de recursos.

    var (
        activeDirectoryEndpoint = "yourLoginEndpointFromResourceManagerUrlMetadata"
        tenantID = "yourAzureStackTenantID"
        clientID = "yourServicePrincipalApplicationID"
        clientSecret = "yourServicePrincipalSecret"
        activeDirectoryResourceID = "yourAudienceFromResourceManagerUrlMetadata"
        subscriptionID = "yourSubscriptionID"
        baseURI = "yourResourceManagerURL"
        resourceGroupName = "existingResourceGroupName"
    )
    
  3. Agora que definiu as variáveis ambientais, adicione um método para criar um token de autenticação utilizando o pacote adal. Para obter mais informações sobre a autenticação, consulte a secção anterior.

    //CreateToken creates a service principal token
    func CreateToken() (adal.OAuthTokenProvider, error) {
       var token adal.OAuthTokenProvider
       oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
       token, err = adal.NewServicePrincipalToken(
           *oauthConfig,
           clientID,
           clientSecret,
           activeDirectoryResourceID)
       return token, err
    }
    
  4. Adicione o main método. O main método primeiro recebe um símbolo usando o método que é definido no passo anterior. Em seguida, cria um cliente usando um módulo de rede a partir do perfil. Finalmente, cria uma rede virtual.

    package main
    
    import (
       "context"
       "fmt"
       "github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/network/mgmt/network"
       "github.com/Azure/go-autorest/autorest"
       "github.com/Azure/go-autorest/autorest/adal"
       "github.com/Azure/go-autorest/autorest/to"
    )
    
    var (
       activeDirectoryEndpoint = "yourLoginEndpointFromResourceManagerUrlMetadata"
       tenantID = "yourAzureStackTenantID"
       clientID = "yourServicePrincipalApplicationID"
       clientSecret = "yourServicePrincipalSecret"
       activeDirectoryResourceID = "yourAudienceFromResourceManagerUrlMetadata"
      subscriptionID = "yourSubscriptionID"
      baseURI = "yourResourceManagerURL"
      resourceGroupName = "existingResourceGroupName"
    )
    
    //CreateToken creates a service principal token
    func CreateToken() (adal.OAuthTokenProvider, error) {
       var token adal.OAuthTokenProvider
       oauthConfig, err := adal.NewOAuthConfig(activeDirectoryEndpoint, tenantID)
       token, err = adal.NewServicePrincipalToken(
           *oauthConfig,
           clientID,
           clientSecret,
           activeDirectoryResourceID)
       return token, err
    }
    
    func main() {
       token, _ := CreateToken()
       vnetClient := network.NewVirtualNetworksClientWithBaseURI(baseURI, subscriptionID)
       vnetClient.Authorizer = autorest.NewBearerAuthorizer(token)
       future, _ := vnetClient.CreateOrUpdate(
           context.Background(),
           resourceGroupName,
           "sampleVnetName",
           network.VirtualNetwork{
               Location: to.StringPtr("local"),
               VirtualNetworkPropertiesFormat: &network.VirtualNetworkPropertiesFormat{
                   AddressSpace: &network.AddressSpace{
                       AddressPrefixes: &[]string{"10.0.0.0/8"},
                   },
                   Subnets: &[]network.Subnet{
                       {
                           Name: to.StringPtr("subnetName"),
                           SubnetPropertiesFormat: &network.SubnetPropertiesFormat{
                               AddressPrefix: to.StringPtr("10.0.0.0/16"),
                           },
                       },
                   },
               },
           })
       err := future.WaitForCompletionRef(context.Background(), vnetClient.Client)
       if err != nil {
           fmt.Printf(err.Error())
           return
       }
    }
    

Algumas das amostras de código disponíveis para O Azure Stack Hub utilizando o Go SDK são:

Passos seguintes