Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве вы узнаете, как использовать шаблон Bicep для создания рабочих областей Azure Quantum и необходимых групп ресурсов и учетных записей хранения. После развертывания шаблона можно запустить квантовые приложения в Azure Quantum. Рассматривая инфраструктуру как код, вы можете отслеживать изменения требований к инфраструктуре и обеспечить согласованность и повторяемость развертываний.
Bicep использует декларативный синтаксис, который обрабатывается как код приложения. Если вы знакомы с синтаксисом JSON для написания шаблонов Azure Resource Manager (ARM), вы найдете, что Bicep предоставляет более краткий синтаксис и улучшенную безопасность типов.
Необходимые условия
Учетная запись Azure
Для начала работы вам потребуется учетная запись Azure с активной подпиской. Если у вас нет учетной записи Azure, зарегистрируйтесь бесплатно и зарегистрируйтесь для подписки с оплатой по мере использования.
Editor
Чтобы создать шаблоны Bicep, вам нужен хороший редактор. Мы рекомендуем последнюю версию VS Code с расширением Bicep.
Развертывание из командной строки
Для развертывания шаблона также требуется Azure PowerShell или Azure CLI. При использовании Azure CLI необходимо иметь последнюю версию. Ознакомьтесь с инструкциями по установке:
- Установка Azure PowerShell
- Установка Azure CLI в Windows
- Установка Azure CLI в Linux
- Установка Azure CLI в macOS
Вход в 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"
Просмотр шаблона 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
Следующие Azure ресурсы создаются шаблоном:
- учетная запись хранения Azure: учетная запись Azure для хранения входных и выходных данных для квантовых вычислений.
- рабочая область Azure Quantum: коллекция активов, связанных с выполнением квантовых приложений.
Шаблон также предоставляет участнику квантовой рабочей области разрешение учетной записи хранения. Этот шаг необходим, чтобы рабочая область могла считывать и записывать данные задания.
Шаблон создает следующие выходные данные. Эти значения можно использовать позже для идентификации созданной квантовой рабочей области и проверки подлинности в ней:
- идентификатор подписки, содержащий все развернутые ресурсы.
- Группа ресурсов , содержащая все развернутые ресурсы.
- имя квантовой рабочей области.
- расположение центра обработки данных, на котором размещена рабочая область.
- Идентификатор арендатора с учетными данными, используемыми при развертывании.
Развертывание шаблона
Чтобы развернуть шаблон, используйте 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, чтобы убедиться, что развертывание прошло успешно.
Important
В некоторых случаях может возникнуть ошибка развертывания (code: PrincipalNotFound). Причина заключается в том, что субъект рабочей области еще не был создан, когда диспетчер ресурсов пытался настроить назначение роли. Если это так, просто повторите развертывание. Он должен добиться успеха при втором запуске.
Проверка развертывания
Развертывание можно проверить, просмотрев группу ресурсов на портале Azure.
Войдите на портал Azure.
В меню слева выберите группы ресурсов.
Выберите группу ресурсов для развертывания в последней процедуре. Имя по умолчанию — myResourceGroup. Вы должны увидеть два ресурса, развернутых в группе ресурсов — учетную запись хранения и квантовую рабочую область.
Убедитесь, что квантовая рабочая область имеет необходимые права доступа для учетной записи хранения. Выберите учетную запись хранения. В левой области меню выберите Управление доступом (IAM) и убедитесь, что в разделе Назначение ролей ресурс квантовой рабочей области указан в роли Участник.
Очистите ресурсы
Если вам больше не нужна квантовая рабочая область, может потребоваться удалить группу ресурсов.
az group delete --name myResourceGroup
Дальнейшие действия
Теперь, когда вы можете создавать и удалять рабочие области, ознакомьтесь с различными targets способами выполнения квантовых алгоритмов в Azure Quantum. Теперь у вас также есть средства для развертывания рабочих пространств из Azure Pipelines или GitHub Actions.