Partager via


Gérer des espaces de travail Quantum avec Azure Resource Manager

Dans ce guide, apprenez à utiliser un modèle Azure Resource Manager (modèle ARM) ou un modèle Bicep pour créer des espaces de travail Azure Quantum ainsi que les groupes de ressources et les comptes de stockage requis. Après le déploiement du modèle, vous pourrez commencer à exécuter vos applications quantiques dans Azure Quantum. En traitant votre infrastructure en tant que code, vous pouvez suivre les changements de vos besoins en infrastructure et rendre vos déploiements plus cohérents et reproductibles.

Un modèle ARM est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Dans la syntaxe déclarative, vous décrivez le déploiement souhaité sans écrire la séquence de commandes de programmation pour créer le déploiement. Bicep utilise une syntaxe déclarative que vous traitez comme du code d’application. Si vous êtes familiarisé avec la syntaxe JSON pour écrire des modèles Azure Resource Manager (modèles ARM), vous verrez que Bicep offre une syntaxe plus concise et une sécurité de type améliorée. En fait, les fichiers Bicep sont compilés en modèles ARM standard.

Prérequis

Compte Azure

Avant de commencer, vous devez disposer d’un compte Azure doté d’un abonnement actif. Si vous n’avez pas de compte Azure, inscrivez-vous gratuitement et inscrivez-vous à un abonnement avec paiement à l’utilisation.

Éditeur

Pour créer des modèles ARM ou Bicep, vous avez besoin d’un bon éditeur. Nous conseillons Visual Studio Code avec l’extension Outils Resource Manager. Si vous devez installer ces outils, consultez Démarrage rapide : Créer des modèles ARM avec Visual Studio Code.

Déploiement en ligne de commande

Vous avez également besoin d’Azure PowerShell ou d’Azure CLI pour déployer le modèle. Si vous utilisez Azure CLI, vous devez disposer de la dernière version. Pour les instructions d’installation, consultez :

Connexion à Azure

Après avoir installé Azure PowerShell ou Azure CLI, prenez soin de vous connecter une première fois. Choisissez l’un des onglets suivants et exécutez les commandes de ligne de commande correspondantes pour vous connecter à Azure :

az login

Si vous avez plusieurs abonnements Azure, sélectionnez celui que vous souhaitez utiliser. Remplacez SubscriptionName par votre nom d’abonnement. Vous pouvez également utiliser un ID d’abonnement au lieu du nom d’abonnement.

az account set --subscription SubscriptionName

Créer un groupe de ressources vide

Lorsque vous déployez un modèle, vous indiquez le groupe de ressources qui contiendra l’espace de travail Quantum et ses ressources associées. Avant d’exécuter la commande de déploiement, créez le groupe de ressources avec Azure CLI ou Azure PowerShell.

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

Vérifier le modèle

@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

Les ressources Azure suivantes sont créées par les deux modèles :

Les modèles accordent également des autorisations Contributeur de l’espace de travail Quantum au compte de stockage. Cette étape est nécessaire pour que l’espace de travail puisse lire et écrire des données de travail.

Les deux modèles génèrent la sortie suivante. Vous pourrez utiliser ces valeurs plus tard pour identifier l’espace de travail Quantum généré et vous y authentifier :

  • ID de l’abonnement qui héberge toutes les ressources déployées.
  • Groupe de ressources qui contient toutes les ressources déployées.
  • Nom de l’espace de travail Quantum.
  • Emplacement du centre de données qui héberge l’espace de travail.
  • ID du locataire qui stocke les informations d’identification utilisées au moment du déploiement.

Déployer le modèle

Pour déployer le modèle, utilisez au choix Azure CLI ou Azure PowerShell. Utilisez le groupe de ressources que vous avez créé. Donnez un nom au déploiement pour pouvoir l’identifier facilement dans l’historique des déploiements. Remplacez {provide-the-path-to-the-template-file} et les accolades {} par le chemin à votre fichier de modèle. De plus, remplacez {provide-app-name} et {provide-location} respectivement par le nom de l’application globale et l’emplacement où doit résider l’espace de travail. Le nom de l’application doit être constitué de lettres uniquement.

Pour exécuter cette commande de déploiement, vous devez disposer de la dernière version d’Azure CLI.

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}"

La commande de déploiement retourne des résultats. Recherchez ProvisioningState pour voir si le déploiement s’est déroulé correctement.

Important

Dans certains cas, vous pouvez obtenir une erreur de déploiement (Code : PrincipalNotFound). Cette erreur peut être due au fait que le principal de l’espace de travail n’était pas encore créé lorsque Resource Manager a tenté de configurer l’attribution de rôle. Si c’est le cas, recommencez simplement le déploiement. L’opération devrait réussir au second essai.

Valider le déploiement

Vous pouvez vérifier le déploiement en explorant le groupe de ressources à partir du portail Azure.

  1. Connectez-vous au portail Azure.

  2. Dans le menu de gauche, sélectionnez Groupes de ressources.

  3. Sélectionnez le groupe de ressources déployé dans la dernière procédure. Le nom par défaut est myResourceGroup. Vous devez voir deux ressources déployées dans le groupe de ressources : le compte de stockage et l’espace de travail Quantum.

  4. Vérifiez que l’espace de travail Quantum dispose des droits d’accès nécessaires pour le compte de stockage. Sélectionnez le compte de stockage. Dans le volet du menu de gauche, sélectionnez Contrôle d’accès (IAM) et vérifiez que, sous Attributions de rôles, la ressource de l’espace de travail Quantum est listée sous Contributeur.

Nettoyer les ressources

Si vous n’avez plus besoin de l’espace de travail Quantum, vous pouvez supprimer le groupe de ressources.

az group delete --name myResourceGroup

Étapes suivantes

Maintenant que vous pouvez créer et supprimer des espaces de travail, découvrez les différents targets à exécuter des algorithmes quantiques dans Azure Quantum. Vous avez maintenant également les outils nécessaires pour effectuer des déploiements d’espaces de travail à partir d’Azure Pipelines ou de GitHub Actions.