Sdílet prostřednictvím


Správa kvantových pracovních prostorů pomocí Azure Resource Manager

V této příručce se dozvíte, jak pomocí šablony Azure Resource Manager (šablony ARM) nebo šablony Bicep vytvořit pracovní prostory Azure Quantum a požadované skupiny prostředků a účty úložiště. Po nasazení šablony můžete začít spouštět kvantové aplikace v Azure Quantum. Když s infrastrukturou pracujete jako s kódem, umožní vám to sledovat změny v požadavcích na infrastrukturu. To zvýší konzistenci nasazení a možnost jejich opakovaného použití.

Šablona Resource ARM je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. V deklarativní syntaxi popíšete zamýšlené nasazení, aniž byste museli psát sekvenci programovacích příkazů pro vytvoření tohoto nasazení. Bicep používá deklarativní syntaxi, se kterou můžete zacházet stejně jako s kódem aplikace. Pokud znáte syntaxi JSON pro psaní šablon Azure Resource Manager (šablon ARM), zjistíte, že Bicep poskytuje stručnější syntaxi a lepší zabezpečení typů. Ve skutečnosti se soubory Bicep kompilují do standardních šablon ARM.

Požadavky

Účet Azure

Než začnete, musíte mít účet Azure s aktivním předplatným. Pokud nemáte účet Azure, zaregistrujte se zdarma a zaregistrujte si předplatné s průběžnými platbou.

Editor

K vytváření šablon ARM nebo Bicep potřebujete dobrý editor. Doporučujeme Visual Studio Code s rozšířením Resource Manager Tools. Pokud potřebujete tyto nástroje nainstalovat, přečtěte si rychlý start: Vytváření šablon ARM pomocí editoru Visual Studio Code.

Nasazení pomocí příkazového řádku

K nasazení šablony také potřebujete Azure PowerShell nebo Azure CLI. Pokud používáte Azure CLI, musíte mít nejnovější verzi. Pokyny k instalaci najdete tady:

Přihlášení k Azure

Po instalaci Azure PowerShell nebo Azure CLI se ujistěte, že se poprvé přihlašujete. Zvolte jednu z následujících karet a spusťte odpovídající příkazy příkazového řádku pro přihlášení k Azure:

az login

Pokud máte více předplatných Azure, vyberte předplatné, které chcete použít. Nahraďte SubscriptionName názvem vašeho předplatného. Místo názvu předplatného můžete také použít ID předplatného.

az account set --subscription SubscriptionName

Vytvoření prázdné skupiny prostředků

Při nasazování šablony zadáte skupinu prostředků, která bude obsahovat kvantový pracovní prostor s přidruženými prostředky. Před spuštěním příkazu k nasazení vytvořte skupinu prostředků. Použijte k tomu Azure CLI nebo Azure PowerShell.

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

Kontrola šablony

@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

Obě šablony vytvářejí následující prostředky Azure:

Šablony také udělí kvantovému pracovnímu prostoru oprávnění Contributor-permissions k účtu úložiště. Tento krok je potřeba k tomu, aby pracovní prostor mohl číst a zapisovat data úloh.

Obě šablony vygenerují následující výstup. Tyto hodnoty můžete později použít k identifikaci vygenerovaného kvantového pracovního prostoru a ověření v něm:

  • ID předplatného hostujícího všechny nasazené prostředky
  • Skupina prostředků obsahující všechny nasazené prostředky.
  • Název kvantového pracovního prostoru
  • Umístění datacentra, které je hostitelem pracovního prostoru.
  • ID tenanta , který drží přihlašovací údaje použité při nasazení.

Nasazení šablony

K nasazení šablony použijte Azure CLI nebo Azure PowerShell. Použijte skupinu prostředků, kterou jste vytvořili. Zadejte název nasazení, abyste ho mohli snadno identifikovat v historii nasazení. Nahraďte {provide-the-path-to-the-template-file} a složené závorky {} cestou k souboru šablony. Dále nahraďte {provide-app-name} a {provide-location} hodnotami pro celkový název aplikace a umístění, kde se má pracovní prostor nacházet. Název aplikace by měl obsahovat jenom písmena.

Jestliže chcete spustit tento příkaz nasazení, musíte mít k dispozici nejnovější verzi 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}"

Příkaz pro nasazení vrátí výsledky. Vyhledejte a ProvisioningState zjistěte, jestli nasazení proběhlo úspěšně.

Důležité

V některých případech může dojít k chybě nasazení (kód: PrincipalNotFound). Důvodem je to, že se objekt zabezpečení pracovního prostoru ještě nevytvořil, když se správce prostředků pokusil nakonfigurovat přiřazení role. V takovém případě stačí nasazení zopakovat. Ve druhém spuštění by měl být úspěšný.

Ověření nasazení

Nasazení můžete ověřit prozkoumáním skupiny prostředků z Azure Portal.

  1. Přihlaste se k webu Azure Portal.

  2. V nabídce vlevo vyberte Skupiny prostředků.

  3. V posledním postupu vyberte nasazení skupiny prostředků. Výchozí název je myResourceGroup. Měli byste vidět dva prostředky nasazené v rámci skupiny prostředků – účet úložiště a kvantový pracovní prostor.

  4. Ověřte, že má kvantový pracovní prostor potřebná přístupová práva k účtu úložiště. Vyberte účet úložiště. V levém podokně nabídek vyberte Access Control (IAM) a ověřte, že v části Přiřazení rolí je prostředek kvantového pracovního prostoru uvedený v části Přispěvatel.

Vyčištění prostředků

Pokud už kvantový pracovní prostor nepotřebujete, můžete skupinu prostředků odstranit.

az group delete --name myResourceGroup

Další kroky

Když teď můžete vytvářet a odstraňovat pracovní prostory, seznamte se s různými targets způsoby spouštění kvantových algoritmů v Azure Quantum. Teď máte také nástroje pro nasazení pracovních prostorů z Azure Pipelines nebo GitHub Actions.