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:
- Instalar o Azure PowerShell
- Instalar a CLI do Azure no Windows
- Instalar a CLI do Azure no Linux
- Instalar a CLI do Azure no macOS
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:
- Conta de Armazenamento do Azure: conta de armazenamento para armazenar dados de entrada e saída para trabalhos quânticos.
- espaço de trabalho do Azure Quantum: uma coleção de recursos associados à execução de aplicativos quânticos.
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.
Inicie sessão no portal Azure.
No menu à esquerda, selecione Grupos de recursos.
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.
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.