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:
- Instalace Azure PowerShellu
- Instalace Azure CLI ve Windows
- Instalace Azure CLI v Linuxu
- Instalace Azure CLI v macOS
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:
- Účet úložiště Azure: Účet úložiště pro ukládání vstupních a výstupních dat pro kvantové úlohy.
- Pracovní prostor Azure Quantum: kolekce prostředků přidružených ke spouštění kvantových aplikací.
Š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.
Přihlaste se k webu Azure Portal.
V nabídce vlevo vyberte Skupiny prostředků.
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.
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.