Aracılığıyla paylaş


Azure Resource Manager ile kuantum çalışma alanlarını yönetme

Bu kılavuzda, Azure Quantum çalışma alanlarını ve gerekli kaynak gruplarını ve depolama hesaplarını oluşturmak için Azure Resource Manager şablonu (ARM şablonu) veya Bicep şablonu kullanmayı öğrenin. Şablon dağıtımının ardından kuantum uygulamalarınızı Azure Quantum'da çalıştırmaya başlayabilirsiniz. Altyapınızı kod olarak değerlendirmek, altyapı gereksinimlerinizdeki değişiklikleri izlemenize ve dağıtımlarınızı hem daha tutarlı hem de yinelenebilir hale getirmenize olanak verir.

ARM şablonu projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz. Bicep, uygulama kodu gibi değerlendireceğiniz bildirim temelli bir kod söz dizimi kullanılır. Azure Resource Manager şablonları (ARM şablonları) yazmaya yönelik JSON söz dizimini biliyorsanız, Bicep'in daha kısa bir söz dizimi ve geliştirilmiş tür güvenliği sağladığını göreceksiniz. Gerçekten de Bicep dosyaları standart ARM şablonlarına derlenmiştir.

Önkoşullar

Azure hesabı

Başlamadan önce etkin aboneliği olan bir Azure hesabınız olmalıdır. Azure hesabınız yoksa ücretsiz kaydolun ve kullandıkça öde aboneliğine kaydolun.

Düzenleyici

ARM veya Bicep şablonları oluşturmak için iyi bir düzenleyiciye ihtiyacınız vardır. Resource Manager Araçları uzantısıyla Visual Studio Code öneririz. Bu araçları yüklemeniz gerekiyorsa bkz. Hızlı Başlangıç: Visual Studio Code ile ARM şablonları oluşturma.

Komut satırı dağıtımı

Şablonu dağıtmak için Azure PowerShell veya Azure CLI gerekir. Azure CLI kullanıyorsanız en son sürüme sahip olmanız gerekir. Yükleme yönergeleri için bkz:

Azure'da oturum açma

Azure PowerShell veya Azure CLI'yı yükledikten sonra ilk kez oturum açtığınızdan emin olun. Aşağıdaki sekmelerden birini seçin ve Azure'da oturum açmak için ilgili komut satırı komutlarını çalıştırın:

az login

Birden çok Azure aboneliğiniz varsa, kullanmak istediğiniz aboneliği seçin. değerini abonelik adınızla değiştirin SubscriptionName . Abonelik adı yerine abonelik kimliğini de kullanabilirsiniz.

az account set --subscription SubscriptionName

Boş kaynak grubu oluşturma

Bir şablonu dağıttığınızda, ilişkili kaynaklarıyla kuantum çalışma alanını içerecek bir kaynak grubu belirtirsiniz. Dağıtım komutunu çalıştırmadan önce Azure CLI veya Azure PowerShell ile kaynak grubunu oluşturun.

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

Şablonu gözden geçirme

@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

Aşağıdaki Azure kaynakları her iki şablon tarafından da oluşturulur:

Şablonlar ayrıca depolama hesabına kuantum çalışma alanına Katkıda Bulunan izinleri verir. Çalışma alanının iş verilerini okuyabilmesi ve yazabilmesi için bu adım gereklidir.

Her iki şablon da aşağıdaki çıkışı oluşturur. Bu değerleri daha sonra kullanarak oluşturulan kuantum çalışma alanını tanımlayabilir ve bu çalışma alanında kimlik doğrulaması yapabilirsiniz:

  • Dağıtılan tüm kaynakları barındıran abonelik kimliği.
  • Dağıtılan tüm kaynakları içeren Kaynak Grubu.
  • Kuantum çalışma alanının adı.
  • Çalışma alanını barındıran veri merkezinin konumu.
  • Dağıtımda kullanılan kimlik bilgilerini barındıran kiracı kimliği.

Şablonu dağıtma

Şablonu dağıtmak için Azure CLI veya Azure PowerShell kullanın. Oluşturduğunuz kaynak grubunu kullanın. Dağıtım geçmişinde kolayca tanımlayabilmeniz için dağıtıma bir ad verin. ve küme ayraçlarını {} şablon dosyanızın yoluyla değiştirin{provide-the-path-to-the-template-file}. Ayrıca, ve {provide-location} değerlerini, genel uygulama adı ve çalışma alanının bulunması gereken konum için değerlerle değiştirin{provide-app-name}. Uygulama adı yalnızca harf içermelidir.

Bu dağıtım komutunu çalıştırmak için Azure CLI’nın en son sürümüne sahip olmanız gerekir.

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}"

Dağıtım komutu sonuçları döndürür. Dağıtımın başarılı olup olmadığını görmek için ProvisioningState arayın.

Önemli

Bazı durumlarda dağıtım hatası alabilirsiniz (Kod: PrincipalNotFound). Bunun nedeni, kaynak yöneticisi rol atamasını yapılandırmayı denediğinde çalışma alanı sorumlusunun henüz oluşturulmamış olmasıdır. Böyle bir durum söz konusuysa dağıtımı yineleyin. İkinci çalıştırmada başarılı olmalıdır.

Dağıtımı doğrulama

Azure portal kaynak grubunu keşfederek dağıtımı doğrulayabilirsiniz.

  1. Azure Portal’ında oturum açın.

  2. Soldaki menüden Kaynak grupları'nı seçin.

  3. Son yordamda dağıtılacak kaynak grubunu seçin. Varsayılan ad myResourceGroup'tır. Kaynak grubu içinde dağıtılan iki kaynak görmeniz gerekir: depolama hesabı ve kuantum çalışma alanı.

  4. Kuantum çalışma alanının depolama hesabı için gerekli erişim haklarına sahip olduğunu doğrulayın. Depolama hesabını seçin. Sol menü bölmesinde Access Control (IAM) öğesini seçin ve Rol atamaları'nın altında kuantum çalışma alanı kaynağının Katkıda Bulunan altında listelendiğini doğrulayın.

Kaynakları temizleme

Kuantum çalışma alanına artık ihtiyacınız yoksa kaynak grubunu silmek isteyebilirsiniz.

az group delete --name myResourceGroup

Sonraki adımlar

Artık çalışma alanları oluşturup silebileceğinize göre, Azure Quantum'da kuantum algoritmalarını çalıştırmaya yönelik farklıtargets özellikler hakkında bilgi edinin. Artık Azure Pipelines veya GitHub Actions içinden çalışma alanı dağıtımları yapmak için de araçlara sahipsiniz.