Gerenciar workspaces quânticos com o Azure Resource Manager
Neste guia, aprenda a usar um modelo do ARM (modelo do Azure Resource Manager) ou um modelo Bicep para criar workspaces do Azure Quantum e os grupos de recursos e contas de armazenamento necessários. Após a implantação de modelo, você pode começar a executar seus aplicativos quânticos no Azure Quantum. Tratar sua infraestrutura como código permite que você controle as alterações em seus requisitos de infraestrutura e torna suas implantações mais consistentes e reproduzíveis.
Um modelo ARM é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do projeto. O modelo usa a sintaxe declarativa. Na sintaxe declarativa, você descreve a implantação pretendida sem gravar a sequência de comandos de programação para criar a implantação. O Bicep usa uma sintaxe declarativa que você trata como o código do aplicativo. Se você estiver familiarizado com a sintaxe JSON para escrever modelos do ARM (Azure Resource Manager), verá que o Bicep fornece uma sintaxe mais concisa e segurança de tipos aprimorada. Na verdade, os arquivos Bicep são compilados em modelos do ARM padrão.
Pré-requisitos
Conta do Azure
Antes de começar, você precisa ter uma conta do Azure com uma assinatura ativa. Se você não tiver uma conta do Azure, registre-se gratuitamente e inscreva-se em uma assinatura paga conforme o uso.
Editor
Para criar modelos ARM ou Bicep, você precisa de um bom editor. Recomendamos o Visual Studio Code com a extensão Ferramentas do Resource Manager. Se precisar instalar essas ferramentas, confira Guia de Início Rápido: Criar modelos do 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 CLI do Azure, precisará ter a versão mais recente. Para obter as instruções de instalação, confira:
- Instale o Azure PowerShell
- Instalar a CLI do Azure no Windows
- Instalar a CLI do Azure no Linux
- Instalar a CLI do Azure no macOS
Entrar no Azure
Depois de instalar o Azure PowerShell ou a CLI do Azure, é preciso que você entre 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 assinaturas do Azure, selecione a que deseja usar. Substitua SubscriptionName
pelo nome da sua assinatura. Em vez do nome da assinatura, você também pode usar a ID da assinatura.
az account set --subscription SubscriptionName
Criar um grupo de recursos vazio
Ao implantar um modelo, você especificará um grupo de recursos que conterá o workspace quântico com seus recursos associados. Antes de executar o comando de implantação, crie o grupo de recursos com a CLI do Azure ou o Azure PowerShell.
az group create --name myResourceGroup --location "East US"
Examinar 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 estes modelos:
- Conta de Armazenamento do Azure: conta de armazenamento para armazenar dados de entrada e saída para trabalhos quânticos.
- Workspace do Azure Quantum: uma coleção de ativos associados à execução de aplicativos quânticos.
Os modelos também concedem as permissões de contribuidor do workspace quântico à conta de armazenamento. Essa etapa é necessária para que o workspace possa ler e gravar dados de trabalho.
Ambos os modelos geram a saída a seguir. Você pode usar esses valores posteriormente para identificar o workspace quântico gerado e autenticá-lo:
- ID da assinatura que hospeda todos os recursos implantados.
- Grupo de recursos que contém todos os recursos implantados.
- Nome do workspace quântico.
- Localização do datacenter que hospeda o workspace.
- ID do locatário contendo credenciais usadas na implantação.
Implantar o modelo
Para implantar o modelo, use a CLI do Azure ou o Azure PowerShell. Use o grupo de recursos que você criou anteriormente. Dê um nome para a 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 a localização na qual o workspace deve residir. O nome do aplicativo deve conter apenas letras.
Para executar esse comando de implantação, você precisa 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 de implantação retorna os resultados. Procure ProvisioningState
para ver se a implantação foi bem-sucedida.
Importante
Em alguns casos, você pode obter um erro de implantação (código: PrincipalNotFound). O motivo para isso é que a entidade de segurança do workspace ainda não tinha sido criada quando o gerenciador de recursos tentou configurar a atribuição de função. Se esse é o caso, basta repetir a implantação. Ela deve ter êxito na segunda execução.
Validar a implantação
Você pode verificar a implantação explorando o grupo de recursos no portal do Azure.
Entre no portal do Azure.
No menu à esquerda, selecione Grupos de recursos.
Selecione o grupo de recursos implantado no último procedimento. O nome padrão é myResourceGroup. Você deve ver dois recursos implantados no grupo de recursos: a conta de armazenamento e o workspace quântico.
Verifique se o workspace quântico tem direitos de acesso necessários para a conta de armazenamento. Selecione a conta de armazenamento. No painel de menu à esquerda, selecione Controle de Acesso (IAM) e verifique se em Atribuições de função o recurso de workspace quântico está listado em Contribuidor.
Limpar os recursos
Se você não precisar mais do workspace quântico, talvez queira excluir o grupo de recursos.
az group delete --name myResourceGroup
Próximas etapas
Agora que você pode criar e excluir workspaces, saiba mais sobre o diferente targets para executar algoritmos quânticos no Azure Quantum. Agora você também tem as ferramentas para realizar implantações de workspace de dentro do Azure Pipelines ou do GitHub Actions.