Verwalten von Quantenarbeitsbereichen mit dem Azure Resource Manager
In diesem Leitfaden erfahren Sie, wie Sie eine ARM-Vorlage (Azure Resource Manager) oder eine Bicep-Vorlage verwenden, um Azure Quantum-Arbeitsbereiche und die erforderlichen Ressourcengruppen und Speicherkonten zu erstellen. Nach der Vorlagenbereitstellung können Sie mit der Ausführung Ihrer Quantenanwendungen in Azure Quantum beginnen. Wenn Sie Ihre Infrastruktur als Code behandeln, können Sie Änderungen an Ihren Infrastrukturanforderungen nachverfolgen und Ihre Bereitstellungen konsistenter und wiederholbarer gestalten.
Eine ARM-Vorlage ist eine JSON-Datei (JavaScript Object Notation), in der die Infrastruktur und die Konfiguration für Ihr Projekt definiert sind. Die Vorlage verwendet eine deklarative Syntax. In deklarativer Syntax beschreiben Sie Ihre beabsichtigte Bereitstellung, ohne die Reihenfolge der Programmierbefehle zur Erstellung der Bereitstellung zu schreiben. Bicep verwendet eine deklarative Syntax, die Sie wie Anwendungscode behandeln. Wenn Sie mit der JSON-Syntax zum Schreiben von Azure Resource Manager-Vorlagen (ARM-Vorlagen) vertraut sind, werden Sie feststellen, dass Bicep eine präzisere Syntax und verbesserte Typsicherheit bietet. Tatsächlich werden Bicep-Dateien in ARM-Standardvorlagen kompiliert.
Voraussetzungen
Azure-Konto
Bevor Sie beginnen, müssen Sie über ein Azure-Konto mit einem aktiven Abonnement verfügen. Wenn Sie kein Azure-Konto besitzen, registrieren Sie sich kostenlos, und registrieren Sie sich für ein Abonnement mit nutzungsbasierter Bezahlung.
Editor
Zum Erstellen von ARM- oder Bicep-Vorlagen benötigen Sie einen guten Editor. Wir empfehlen Visual Studio Code mit der Erweiterung „Azure Resource Manager-Tools“. Informationen zum Installieren dieser Tools finden Sie bei Bedarf unter Schnellstart: Erstellen von ARM-Vorlagen mit Visual Studio Code.
Befehlszeilenbereitstellung
Zum Bereitstellen der Vorlage benötigen Sie außerdem entweder Azure PowerShell oder die Azure CLI. Wenn Sie die Azure CLI verwenden, müssen Sie über die neueste Version verfügen. Die Installationsanweisungen finden Sie unter:
- Installieren von Azure PowerShell
- Installieren der Azure CLI unter Windows
- Installieren der Azure CLI unter Linux
- Installieren der Azure CLI unter macOS
Anmelden bei Azure
Melden Sie sich nach der Installation von Azure PowerShell oder der Azure CLI zum ersten Mal an. Wählen Sie eine der folgenden Registerkarten aus, und führen Sie die entsprechenden Befehlszeilenbefehle aus, um sich bei Azure anzumelden:
az login
Wenn Sie über mehrere Azure-Abonnements verfügen, wählen Sie das Abonnement aus, das Sie verwenden möchten. Ersetzen Sie SubscriptionName
durch den Abonnementnamen. Sie können auch die Abonnement-ID anstelle des Abonnementnamens verwenden.
az account set --subscription SubscriptionName
Erstellen einer leeren Ressourcengruppe
Wenn Sie eine Vorlage bereitstellen, geben Sie eine Ressourcengruppe für den Quantenarbeitsbereich und die zugehörigen Ressourcen an. Erstellen Sie die Ressourcengruppe vor dem Ausführen des Bereitstellungsbefehls entweder mit der Azure CLI oder Azure PowerShell.
az group create --name myResourceGroup --location "East US"
Überprüfen der Vorlage
@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
Folgende Azure-Ressourcen werden von beiden Vorlagen erstellt:
- Azure Storage-Konto: Speicherkonto zum Speichern von Ein- und Ausgabedaten für Quantenaufträge.
- Azure Quantum-Arbeitsbereich: Eine Sammlung von Ressourcen, die ausgeführten Quantenanwendungen zugeordnet sind.
Durch die Vorlagen werden dem Quantenarbeitsbereich auch Berechtigungen vom Typ Mitwirkender für das Speicherkonto erteilt. Dieser Schritt ist erforderlich, damit der Arbeitsbereich Auftragsdaten lesen und schreiben kann.
Von beiden Vorlagen wird die folgende Ausgabe generiert. Diese Werte können später verwendet werden, um den generierten Quantenarbeitsbereich zu identifizieren und sich bei ihm zu authentifizieren:
- Abonnement-ID, unter der alle bereitgestellten Ressourcen gehostet werden
- Ressourcengruppe, die alle bereitgestellten Ressourcen enthält
- Name des Quantenarbeitsbereichs
- Standort des Rechenzentrums, das den Arbeitsbereich hostet
- Mandanten-ID mit Anmeldeinformationen, die bei der Bereitstellung verwendet werden
Bereitstellen der Vorlage
Zum Bereitstellen der Vorlage verwenden Sie entweder die Azure CLI oder Azure PowerShell. Verwenden Sie die Ressourcengruppe aus, die Sie erstellt haben. Geben Sie der Bereitstellung einen Namen, damit Sie sie im Bereitstellungsverlauf problemlos identifizieren können. Ersetzen Sie {provide-the-path-to-the-template-file}
und die geschweiften Klammern {}
durch den Pfad zu Ihrer Vorlagendatei. Ersetzen Sie außerdem {provide-app-name}
und {provide-location}
durch Werte für den allgemeinen Anwendungsnamen und den Standort, an dem sich der Arbeitsbereich befinden soll. Der App-Name sollte nur Buchstaben enthalten.
Für die Ausführung dieses Bereitstellungsbefehls müssen Sie über die aktuelle Version der Azure CLI verfügen.
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}"
Der Bereitstellungsbefehl gibt Ergebnisse zurück. Suchen Sie nach ProvisioningState
, um zu sehen, ob die Bereitstellung erfolgreich war.
Wichtig
In einigen Fällen tritt möglicherweise ein Bereitstellungsfehler auf (Code: PrincipalNotFound). Grund dafür ist, dass der Arbeitsbereichsprinzipal noch nicht erstellt war, als der Ressourcen-Manager versucht hat, die Rollenzuweisung zu konfigurieren. Wiederholen Sie in diesem Fall einfach die Bereitstellung. Beim zweiten Durchlauf sollte der Vorgang erfolgreich sein.
Überprüfen der Bereitstellung
Sie können die Bereitstellung überprüfen, indem Sie sich die Ressourcengruppe im Azure-Portal ansehen.
Melden Sie sich beim Azure-Portal an.
Wählen Sie im linken Menü Ressourcengruppen aus.
Wählen Sie die im letzten Verfahren bereitgestellte Ressourcengruppe aus. Der Standardname ist myResourceGroup. In der Ressourcengruppe sollten zwei Ressourcen bereitgestellt sein: das Speicherkonto und der Quantenarbeitsbereich.
Vergewissern Sie sich, dass der Quantenarbeitsbereich über die erforderlichen Zugriffsrechte für das Speicherkonto verfügt. Wählen Sie Speicherkonto aus. Wählen Sie im linken Menübereich Zugriffssteuerung (IAM) aus, und vergewissern Sie sich, dass unter Rollenzuweisungen die Quantenarbeitsbereichsressource unter Mitwirkender aufgeführt ist.
Bereinigen von Ressourcen
Wenn Sie den Quantenarbeitsbereich nicht mehr benötigen, können Sie die Ressourcengruppe löschen.
az group delete --name myResourceGroup
Nächste Schritte
Nachdem Sie Nun Arbeitsbereiche erstellen und löschen können, erfahren Sie mehr über die verschiedenen Möglichkeiten targets zum Ausführen von Quantenalgorithmen in Azure Quantum. Sie verfügen nun auch über die Tools für die Bereitstellung von Arbeitsbereichen über Azure Pipelines oder GitHub Actions.