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 PowerShell’i yükleme
- Windows'da Azure CLI'yi yükleme
- Linux'ta Azure CLI'yi yükleme
- macOS’ta Azure CLI'yi yükleme
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:
- Azure Depolama Hesabı: Kuantum işleri için giriş ve çıkış verilerini depolamak için depolama hesabı.
- Azure Quantum çalışma alanı: Çalışan kuantum uygulamalarıyla ilişkili varlık koleksiyonu.
Ş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.
Azure Portal’ında oturum açın.
Soldaki menüden Kaynak grupları'nı seçin.
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ı.
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.