共用方式為


使用 Azure Resource Manager 管理量子工作區

在本指南中,您將了解如何使用 Azure Resource Manager 範本 (ARM 範本) 或 Bicep 範本來建立 Azure Quantum 工作區,以及必要的資源群組和儲存體帳戶。 部署範本之後,您可以在 Azure Quantum 中開始執行量子應用程式。 當將基礎結構視為程式碼時,即可追蹤基礎結構需求的變更,並讓部署更一致且可重複利用。

ARM 範本是一個 JavaScript 物件標記法 (JSON) 檔案,會定義專案的基礎結構和設定。 範本會使用宣告式語法。 在宣告式語法中,您可以描述預期的部署,而不需要撰寫程式設計命令順序來建立部署。 Bicep 使用與處理應用程式程式碼相同的宣告式語法。 如果您熟悉用來撰寫 Azure Resource Manager 範本的 JSON 語法 (ARM 範本),您會發現 Bicep 提供更簡潔的語法和增強型別安全。 事實上,Bicep 檔案會編譯成標準 ARM 範本。

必要條件

Azure 帳戶

開始之前,您必須擁有具備作用中訂用帳戶的 Azure 帳戶。 如果您沒有 Azure 帳戶,請免費註冊並註冊 隨用隨付訂用帳戶。

編輯器

若要建立 ARM 或 Bicep 範本,您需要良好的編輯器。 我們建議使用含 Resource Manager 工具擴充功能的 Visual Studio Code。 如果您需要安裝這些工具,請參閱快速入門:使用 Visual Studio Code 建立 ARM 範本

命令列部署

您也需要 Azure PowerShell 或 Azure CLI 來部署範本。 如果您使用 Azure CLI,則必須擁有最新版本。 如需安裝指示,請參閱:

登入 Azure

安裝 Azure PowerShell 或 Azure CLI 之後,請確定您是第一次登入。 選擇下列其中一個索引標籤,並執行對應的命令列命令以登入 Azure:

az login

如果您有多個 Azure 訂用帳戶,請選取您要使用的訂用帳戶。 以您的訂用帳戶名稱取代 SubscriptionName。 除了訂用帳戶名稱之外,您也可以使用訂用帳戶識別碼。

az account set --subscription SubscriptionName

建立空的資源群組

部署範本時,您必須指定一個資源群組,其中包含量子工作區及其相關資源。 執行部署命令之前,使用 Azure CLI 或 Azure PowerShell 來建立資源群組。

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

檢閱範本

@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

這兩個範本會建立下列 Azure 資源:

這些範本也會為儲存體帳戶授與量子工作區參與者權限。 需要執行此步驟,工作區才能讀取和寫入作業資料。

這兩個範本都會產生下列輸出。 您稍後可以使用這些值來識別產生的量子工作區,並進行驗證:

  • 訂閱識別碼,裝載所有已部署資源。
  • 資源群組,包含所有已部署資源。
  • 量子工作區的名稱
  • 裝載工作區的資料中心位置
  • 租用戶識別碼,裝載部署所使用的認證。

部署範本

若要部署範本,請使用 Azure CLI 或 Azure PowerShell。 使用您所建立的資源群組。 為部署提供名稱,讓您可以輕鬆地在部署記錄中識別它。 以您範本檔案的路徑取代 {provide-the-path-to-the-template-file} 和大括弧 {}。 此外,將 {provide-app-name}{provide-location} 取代為整體應用程式名稱的值,以及工作區應該位於的位置。 應用程式名稱只能包含字母。

若要執行此部署命令,您必須擁有最新版本的 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}"

此部署命令會傳回結果。 尋找 ProvisioningState,以查看部署是否成功。

重要

在某些情況下,您可能會收到部署錯誤 (程式碼:PrincipalNotFound)。 原因是當資源管理員嘗試設定角色指派時,未建立工作區主體。 如果是這種情況,只要重複部署即可。 應該會在第二次執行時成功。

驗證部署

您可以從 Azure 入口網站探索資源群組,藉以確認部署。

  1. 登入 Azure 入口網站

  2. 從左側功能表中,選取 [資源群組] 。

  3. 選取在最後一個程序中部署的資源群組。 預設名稱為 myResourceGroup。 您應該會看到在資源群組內部署的兩個資源 - 儲存體帳戶和量子工作區。

  4. 確認量子工作區具有儲存體帳戶的必要存取權限。 選取 [儲存體帳戶]。 在左側功能表窗格中,選取 [存取控制 (IAM)],然後確認 [角色指派] 下的量子工作區資源列在 [參與者] 下。

清除資源

如果您不再需要量子工作區,可能會想要刪除資源群組。

az group delete --name myResourceGroup

後續步驟

既然您可以建立和刪除工作區,請瞭解在Azure Quantum 中執行量子演算法的不同 targets。 您現在也有從 Azure PipelinesGitHub Actions 內進行工作區部署的工具。