Administración de áreas de trabajo cuánticas con Azure Resource Manager
En esta guía, aprenderá a usar una plantilla de Azure Resource Manager (plantilla de ARM) o una plantilla de Bicep para crear áreas de trabajo de Azure Quantum, y los grupos de recursos y cuentas de almacenamiento necesarios. Después de la implementación de la plantilla, puede empezar a ejecutar las aplicaciones cuánticas en Azure Quantum. El hecho de tratar la infraestructura como código le permite realizar un seguimiento de los cambios en los requisitos de infraestructura, además de lograr implementaciones más coherentes y repetibles.
Una plantilla de Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define la infraestructura y la configuración del proyecto. La plantilla usa sintaxis declarativa. En la sintaxis declarativa, se describe la implementación deseada sin escribir la secuencia de comandos de programación para crearla. Bicep usa una sintaxis declarativa que se trata como código de aplicación. Si está familiarizado con la sintaxis JSON para escribir plantillas de Azure Resource Manager (plantillas de ARM), descubrirá que Bicep proporciona una sintaxis más concisa y una seguridad de tipos mejorada. De hecho, los archivos de Bicep se compilan en plantillas de ARM estándar.
Requisitos previos
Cuenta de Azure
Antes de empezar, debe tener una cuenta de Azure con una suscripción activa. Si no tiene una cuenta de Azure, regístrese de forma gratuita y regístrese para obtener una suscripción de pago por uso.
Editor
Para crear plantillas de ARM o Bicep, necesita un buen editor. Se recomienda Visual Studio Code con la extensión Herramientas de Resource Manager. Si necesita instalar estas herramientas, consulte Inicio rápido: Creación de plantillas de Resource Manager Visual Studio Code.
Implementación desde la línea de comandos
También necesita Azure PowerShell o la CLI de Azure para implementar la plantilla. Si usa la CLI de Azure, debe tener la versión más reciente. Para obtener instrucciones de instalación, consulte:
- Azure PowerShell
- Instalación de la CLI de Azure en Windows
- Instalación de la CLI de Azure en Linux
- Instalación de la CLI de Azure en macOS
Inicio de sesión en Azure
Después de instalar Azure PowerShell o la CLI de Azure, asegúrese de iniciar sesión por primera vez. Elija una de las pestañas siguientes y ejecute los comandos de línea de comandos correspondientes para iniciar sesión en Azure:
az login
Si tiene varias suscripciones de Azure, seleccione la suscripción que desee usar. Reemplace SubscriptionName
por el nombre de la suscripción. También puede utilizar un identificador de suscripción en lugar del nombre de la suscripción.
az account set --subscription SubscriptionName
Creación de un grupo de recursos vacío
Cuando se implementa una plantilla, se especifica un grupo de recursos que contendrá el área de trabajo cuántica y los recursos asociados. Antes de ejecutar el comando de implementación, cree el grupo de recursos con la CLI de Azure o Azure PowerShell.
az group create --name myResourceGroup --location "East US"
Revisión de la plantilla
@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
Las dos plantillas crean los siguientes recursos de Azure:
- Cuenta de Azure Storage: cuenta de almacenamiento para almacenar los datos de entrada y salida de los trabajos cuánticos.
- Área de trabajo de Azure Quantum: una colección de recursos asociados a la ejecución de aplicaciones cuánticas.
Las plantillas también conceden al área de trabajo cuántica permisos de Colaborador en la cuenta de almacenamiento. Este paso es necesario para que el área de trabajo pueda leer y escribir los datos de trabajo.
Ambas plantillas generan la siguiente salida. Puede usar estos valores más adelante para identificar el área de trabajo cuántica generada y autenticarse en ella:
- Identificador de suscripción que hospeda todos los recursos implementados.
- Grupo de recursos que contiene todos los recursos implementados.
- Nombre del área de trabajo cuántica.
- Ubicación del centro de datos que hospeda el área de trabajo.
- Identificador de inquilino que mantiene las credenciales usadas en la implementación.
Implementación de la plantilla
Use la CLI de Azure o Azure PowerShell para implementar la plantilla. Use el grupo de recursos que creó. Asigne un nombre a la implementación para que pueda identificarla fácilmente en el historial de implementaciones. Reemplace {provide-the-path-to-the-template-file}
y las llaves {}
por la ruta de acceso al archivo de plantilla. Además, reemplace {provide-app-name}
y {provide-location}
por los valores del nombre general de la aplicación y la ubicación donde debe residir el área de trabajo. El nombre de la aplicación solo debe contener letras.
Para ejecutar este comando de implementación, debe tener la última versión de la CLI de 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}"
El comando de implementación devuelve los resultados. Busque ProvisioningState
para ver si la implementación se realizó correctamente.
Importante
En algunos casos, podría recibir un error de implementación (Código: PrincipalNotFound). El motivo es que la entidad de seguridad del área de trabajo aún no se había creado cuando el administrador de recursos intentó configurar la asignación de roles. Si este es el caso, repita la implementación. Se realizará correctamente en la segunda ejecución.
Validación de la implementación
Para comprobar la implementación, explore el grupo de recursos desde Azure Portal.
Inicie sesión en Azure Portal.
En el menú izquierdo, seleccione Grupos de recursos.
Seleccione el grupo de recursos que implementó en el último procedimiento. El nombre predeterminado es myResourceGroup. Verá dos recursos implementados en el grupo de recursos: la cuenta de almacenamiento y el área de trabajo cuántica.
Compruebe que el área de trabajo cuántica tiene los derechos de acceso necesarios para la cuenta de almacenamiento. Seleccione la cuenta de almacenamiento. En el panel de menús de la izquierda, seleccione Access Control (IAM) y compruebe que, en Asignaciones de roles, el recurso del área de trabajo cuántica aparece como Colaborador.
Limpieza de recursos
Si ya no necesita el área de trabajo cuántica, tal vez quiera eliminar el grupo de recursos.
az group delete --name myResourceGroup
Pasos siguientes
Ahora que puede crear y eliminar áreas de trabajo, obtenga información sobre las diferentes targets para ejecutar algoritmos cuánticos en Azure Quantum. Ahora también tiene las herramientas para realizar implementaciones de áreas de trabajo desde Azure Pipelines o Acciones de GitHub.