Partilhar via


Gerenciar espaços de trabalho quânticos com o Azure Resource Manager

Neste guia, aprenda a usar um modelo do Azure Resource Manager (modelo ARM) ou um modelo Bicep para criar espaços de trabalho do Azure Quantum e os grupos de recursos e contas de armazenamento necessários. Após a implantação do modelo, você pode começar a executar seus aplicativos quânticos no Azure Quantum. Tratar sua infraestrutura como código permite que você acompanhe as alterações em seus requisitos de infraestrutura e torna suas implantações mais consistentes e repetíveis.

Um modelo do ARM é um ficheiro JavaScript Object Notation (JSON) que define a infraestrutura e a configuração do seu projeto. O modelo usa sintaxe declarativa. Em sintaxe declarativa, você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação. O Bicep usa uma sintaxe declarativa que você trata como código de aplicativo. Se você estiver familiarizado com a sintaxe JSON para escrever modelos do Azure Resource Manager (modelos ARM), descobrirá que o Bicep fornece uma sintaxe mais concisa e segurança de tipo aprimorada. Na verdade, ficheiros Bicep são compilados para templates padrão do ARM.

Pré-requisitos

Conta do Azure

Antes de começar, você deve ter uma conta do Azure com uma assinatura ativa. Se não tiver uma conta do Azure, registe-se gratuitamente e inscreva-se numa subscrição pré-paga.

Direção

Para criar modelos ARM ou Bicep, você precisa de um bom editor. Recomendamos o Visual Studio Code com a extensão Resource Manager Tools. Se você precisar instalar essas ferramentas, consulte Guia de início rápido: criar modelos ARM com o Visual Studio Code.

Implantação de linha de comando

Você também precisa do Azure PowerShell ou da CLI do Azure para implantar o modelo. Se você usar a CLI do Azure, deverá ter a versão mais recente. Para obter instruções de instalação, consulte:

Iniciar sessão no Azure

Depois de instalar o Azure PowerShell ou a CLI do Azure, certifique-se de entrar pela primeira vez. Escolha uma das seguintes guias e execute os comandos de linha de comando correspondentes para entrar no Azure:

az login

Se tiver várias subscrições do Azure, selecione a subscrição que pretende utilizar. Substitua SubscriptionName pelo nome da sua subscrição. Também pode utilizar o ID da subscrição em vez do nome da subscrição.

az account set --subscription SubscriptionName

Criar um grupo de recursos vazio

Ao implantar um modelo, você especifica um grupo de recursos que conterá o espaço de trabalho quântico com seus recursos associados. Antes de executar o comando de implementação, crie o grupo de recursos com a CLI do Azure ou o Azure PowerShell.

az group create --name myResourceGroup --location "East US"

Rever o modelo

@description('Application name used as prefix for the Azure Quantum workspace and its associated Storage account.')
param appName string

@description('Location of the Azure Quantum workspace and its associated Storage account.')
@allowed([
  'eastus'
  'japaneast'
  'japanwest'
  'northeurope'
  'uksouth'
  'ukwest'
  'westcentralus'
  'westeurope'
  'westus'
  'westus2'
])
param location string

var quantumWorkspaceName = '${appName}-ws'
var storageAccountName = '${appName}${substring(uniqueString(resourceGroup().id), 0, 5)}'


resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

resource quantumWorkspace 'Microsoft.Quantum/Workspaces@2019-11-04-preview' = {
  name: quantumWorkspaceName
  location: location
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    providers: [
      {
        providerId: 'Microsoft'
        providerSku: 'DZH3178M639F'
        applicationName: '${quantumWorkspaceName}-Microsoft'
      }
    ]
    storageAccount: storageAccount.id
  }
}

resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
  scope: storageAccount
  name: guid(quantumWorkspace.id, '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c', storageAccount.id)
  properties: {
    roleDefinitionId: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c'
    principalId: reference(quantumWorkspace.id, '2019-11-04-preview', 'full').identity.principalId
  }
}

output subscription_id string = subscription().subscriptionId
output resource_group string = resourceGroup().name
output name string = quantumWorkspace.name
output location string = quantumWorkspace.location
output tenant_id string = subscription().tenantId

Os seguintes recursos do Azure são criados por ambos os modelos:

Os modelos também concedem ao espaço de trabalho quântico Colaborador-permissões para a conta de armazenamento. Esta etapa é necessária para que o espaço de trabalho possa ler e gravar dados de trabalho.

Ambos os modelos geram a seguinte saída. Você pode usar esses valores posteriormente para identificar o espaço de trabalho quântico gerado e autenticá-lo:

  • ID de Assinatura que contém todos os recursos implantados.
  • Grupo de Recursos contendo todos os recursos implantados.
  • Nome do espaço de trabalho quântico.
  • Localização do datacenter que hospeda o espaço de trabalho.
  • ID do locatário credenciais de retenção usadas na implantação.

Implementar o modelo

Para implantar o modelo, use a CLI do Azure ou o Azure PowerShell. Use o grupo de recursos que você criou. Dê um nome à implantação para que você possa identificá-la facilmente no histórico de implantação. Substitua {provide-the-path-to-the-template-file} e as chaves {} pelo caminho para o arquivo de modelo. Além disso, substitua {provide-app-name} e {provide-location} por valores para o nome geral do aplicativo e o local onde o espaço de trabalho deve residir. O nome do aplicativo deve conter apenas letras.

Para executar este comando de implementação, tem de ter a versão mais recente da CLI do Azure.

templateFile="{provide-the-path-to-the-template-file}"
az deployment group create \
  --name myDeployment \
  --resource-group myResourceGroup \
  --template-file $templateFile \
  --parameters appName="{provide-app-name}" location="{provide-location}"

O comando deployment retorna resultados. Procure ProvisioningState para ver se a implantação foi bem-sucedida.

Importante

Em alguns casos, você pode receber um erro de implantação (Código: PrincipalNotFound). A razão para isso é que o principal do espaço de trabalho ainda não foi criado quando o gestor de recursos tentou configurar a atribuição de funções. Se este for o caso, basta repetir a implantação. Deve ter sucesso na segunda tentativa.

Validar a implantação

Você pode verificar a implantação explorando o grupo de recursos no portal do Azure.

  1. Inicie sessão no portal Azure.

  2. No menu à esquerda, selecione Grupos de recursos.

  3. Selecione o grupo de recursos para implantação no último procedimento. O nome padrão é myResourceGroup. Você verá dois recursos implantados dentro do grupo de recursos - a conta de armazenamento e o espaço de trabalho quântico.

  4. Verifique se o espaço de trabalho quântico tem direitos de acesso necessários para a conta de armazenamento. Selecione a conta de armazenamento. No painel de menu esquerdo, selecione Controle de Acesso (IAM) e verifique se em Atribuições de função o recurso de quantum workspace está listado em Colaborador.

Limpar recursos

Se você não precisar mais do espaço de trabalho quântico, convém excluir o grupo de recursos.

az group delete --name myResourceGroup

Próximos passos

Agora que você pode criar e excluir espaços de trabalho, saiba mais sobre as diferentes maneiras de targets executar algoritmos quânticos no Azure Quantum. Agora tu também tens as ferramentas para implementar ambientes de trabalho de dentro do Azure Pipelines ou GitHub Actions.