Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida illustra come usare un modello di Bicep per creare aree di lavoro Azure Quantum e i gruppi di risorse e gli account di archiviazione necessari. Dopo la distribuzione dei template, è possibile avviare l'esecuzione delle applicazioni quantistiche in Azure Quantum. La possibilità di gestire l'infrastruttura come codice consente di tenere traccia delle modifiche ai requisiti dell'infrastruttura e rende le distribuzioni più coerenti e ripetibili.
Bicep utilizza una sintassi dichiarativa che viene trattata come codice applicativo. Se si ha familiarità con la sintassi JSON per la scrittura di modelli di Azure Resource Manager (ARM), è possibile notare che Bicep fornisce una sintassi più concisa e una maggiore sicurezza dei tipi.
Prerequisites
Account di Azure
Prima di iniziare, è necessario avere un account Azure con una sottoscrizione attiva. Se non si ha un account Azure, registrarsi gratuitamente e iscriversi per ottenere un abbonamento pay-as-you-go.
Redattore
Per creare Bicep modelli, è necessario un buon editor. È consigliabile usare la versione più recente di VS Code con l'estensione Bicep.
Distribuzione da riga di comando
Per distribuire il modello, è necessario anche Azure PowerShell o l'interfaccia della riga di comando di Azure. Se si usa l'interfaccia della riga di comando di Azure, è necessario avere la versione più recente. Per le istruzioni di installazione, vedere:
- Installare Azure PowerShell
- Installare l'interfaccia della riga di comando di Azure in Windows
- Installare l'interfaccia della riga di comando di Azure in Linux
- Installare l'interfaccia della riga di comando di Azure in macOS
Accedere ad Azure
Dopo aver installato Azure PowerShell o interfaccia della riga di comando di Azure, assicurati di accedere per la prima volta. Scegliere una delle schede seguenti ed eseguire i comandi della riga di comando corrispondenti per accedere ad Azure:
az login
Se si hanno più sottoscrizioni di Azure, selezionare quella da usare. Sostituire SubscriptionName con il nome della sottoscrizione. È possibile anche utilizzare l'ID della sottoscrizione invece del nome della sottoscrizione.
az account set --subscription SubscriptionName
Creare un gruppo di risorse vuoto
Quando si distribuisce un modello, specificare un gruppo di risorse che contiene l'area di lavoro quantistica con le risorse associate. Prima di eseguire il comando di distribuzione, creare il gruppo di risorse con l'interfaccia della riga di comando di Azure o Azure PowerShell.
az group create --name myResourceGroup --location "East US"
Esaminare il modello di Azure Bicep
@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([
'westus'
'eastus'
'northeurope'
'westeurope'
'canary'
])
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
Il modello crea le risorse Azure seguenti:
- account di archiviazione di Azure: account per memorizzare i dati di input e output per lavori quantistici.
- 'area di lavoro di Azure Quantum: una raccolta di asset associati all'esecuzione di applicazioni quantistice.
Il modello concede inoltre all'account di archiviazione l'autorizzazione Collaboratore area di lavoro quantistica. Questo passaggio è necessario affinché l'area di lavoro possa leggere e scrivere i dati del lavoro.
Il modello genera l'output seguente. È possibile usare questi valori in un secondo momento per identificare l'area di lavoro quantistica generata ed eseguirne l'autenticazione:
- ID sottoscrizione che ospita tutte le risorse implementate.
- gruppo di risorse contenente tutte le risorse distribuite.
- Nome dell'area di lavoro quantistica.
- posizione del datacenter che ospita l'area di lavoro.
- ID tenant che contiene le credenziali usate nella distribuzione.
Implementare il modello
Per distribuire il modello, usare l'interfaccia della riga di comando di Azure o Azure PowerShell. Usa il gruppo di risorse che hai creato. Assegnare un nome alla distribuzione in modo da poterlo identificare facilmente nella cronologia di distribuzione. Sostituire {provide-the-path-to-the-template-file} e le parentesi graffe {} con il percorso del file modello. Sostituire inoltre {provide-app-name} e {provide-location} con i valori per il nome completo dell'applicazione e il percorso in cui deve risiedere l'area di lavoro. Il nome dell'app deve contenere solo lettere.
Per eseguire questo comando di distribuzione, è necessario avere la versione più recente dell'interfaccia della riga di comando di 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}"
Il comando di distribuzione restituisce i risultati. Cerca ProvisioningState per verificare se la distribuzione è riuscita.
Importante
In alcuni casi è possibile che venga visualizzato un errore di distribuzione (Codice: PrincipalNotFound). Ciò è dovuto al fatto che l'entità dell'area di lavoro non è stata ancora creata quando il gestore delle risorse ha tentato di configurare l'assegnazione di ruolo. In questo caso, ripetere semplicemente la distribuzione. Dovrebbe avere esito positivo nella seconda esecuzione.
Convalidare la distribuzione
È possibile verificare la distribuzione esplorando il gruppo di risorse dal portale di Azure.
Accedi al portale di Azure.
Nel menu a sinistra selezionare Gruppi di risorse.
Selezionare il gruppo di risorse distribuito nell'ultima procedura. Il nome predefinito è myResourceGroup. Verranno visualizzate due risorse distribuite all'interno del gruppo di risorse, ovvero l'account di archiviazione e l'area di lavoro quantistica.
Verificare che l'area di lavoro quantistica disponga dei diritti di accesso necessari per l'account di archiviazione. Selezionare l'account di archiviazione. Nel riquadro dei menu a sinistra, selezionare controllo di accesso (IAM) e verificare che sotto assegnazioni di ruolo la risorsa dell'area di lavoro quantistica sia elencata in Collaboratore.
Pulire le risorse
Se l'area di lavoro quantistica non è più necessaria, è possibile eliminare il gruppo di risorse.
az group delete --name myResourceGroup
Passaggi successivi
Ora che è possibile creare ed eliminare aree di lavoro, scopri le diverse targets per eseguire algoritmi quantistici in Azure Quantum. Sono ora disponibili anche gli strumenti per eseguire distribuzioni dell'area di lavoro da Azure Pipelines o GitHub Actions.