Azure PowerShell kullanarak Cloud Services'i (genişletilmiş destek) dağıtma
Bu makalede az.CloudService Azure PowerShell modülünü kullanarak birden çok rolü (WebRole ve WorkerRole) olan bir Azure Cloud Services (genişletilmiş destek) dağıtımı oluşturma işlemi gösterilmektedir.
Önkoşullar
Azure PowerShell kullanarak dağıtımınızı oluşturmanın önkoşulları olarak aşağıdaki adımları tamamlayın.
Cloud Services (genişletilmiş destek) için dağıtım önkoşullarını gözden geçirin ve gerekli kaynakları oluşturun.
Az.CloudService PowerShell modülünü yükleyin:
Install-Module -Name Az.CloudService
Yeni bir kaynak grubu oluşturma. Mevcut bir kaynak grubunu kullanıyorsanız bu adım isteğe bağlıdır.
New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US”
Cloud Services (genişletilmiş destek) dağıtımı için paket (.cspkg veya .zip) dosya ve yapılandırma (.cscfg) dosyasını depolamak için Azure'da bir depolama hesabı ve kapsayıcı oluşturun. Depolama hesabı adı için benzersiz bir ad kullanmanız gerekir. Mevcut bir depolama hesabı kullanıyorsanız bu adım isteğe bağlıdır.
$storageAccount = New-AzStorageAccount -ResourceGroupName “ContosOrg” -Name “contosostorageaccount” -Location “East US” -SkuName “Standard_RAGRS” -Kind “StorageV2” $container = New-AzStorageContainer -Name “contosocontainer” -Context $storageAccount.Context -Permission Blob
Cloud Services'ı dağıtma (genişletilmiş destek)
Cloud Services'ı (genişletilmiş destek) dağıtmak için aşağıdaki PowerShell cmdlet seçeneklerinden birini kullanın:
Depolama hesabı kullanarak hızlı dağıtım oluşturma
- Bu parametre kümesi paket (.cspkg veya .zip) dosyasını, yapılandırma (.cscfg) dosyasını ve dağıtımın tanım (.csdef) dosyasını depolama hesabıyla giriş olarak girişler.
- Cmdlet, minimum girişle Cloud Services (genişletilmiş destek) rol profilini, ağ profilini ve işletim sistemi profilini oluşturur.
- Sertifika giriş yapmak için bir anahtar kasası adı belirtmeniz gerekir. Anahtar kasasındaki sertifika parmak izleri, dağıtım için yapılandırma (.cscfg) dosyasında belirttiğiniz sertifikalarla doğrulanır.
Paylaşılan erişim imzası URI'si kullanarak hızlı dağıtım oluşturma
- Bu parametre kümesi, yapılandırma (.cscfg) dosyası ve tanım (.csdef) dosyasının yerel yolları ile paket (.cspkg veya .zip) dosyasının paylaşılan erişim imzası (SAS) URI'sini girdi. Depolama hesabı girişi gerekmez.
- cmdlet'i bulut hizmeti rol profilini, ağ profilini ve işletim sistemi profilini en düşük girişi oluşturur.
- Sertifika giriş yapmak için bir anahtar kasası adı belirtmeniz gerekir. Anahtar kasasındaki sertifika parmak izleri, dağıtım için yapılandırma (.cscfg) dosyasında belirttiğiniz sertifikalarla doğrulanır.
Paylaşılan erişim imzası URI'leri ile rol profili, işletim sistemi profili, ağ profili ve uzantı profili kullanarak dağıtım oluşturma
- Bu parametre kümesi, paket (.cspkg veya .zip) dosyası ve yapılandırma (.cscfg) dosyasının SAS URI'lerini girdi.
- Profil nesnelerini belirtmelisiniz: rol profili, ağ profili, işletim sistemi profili ve uzantı profili. Profillerin yapılandırma (.cscfg) dosyası ve tanım (.csdef) dosyasında ayarladığınız değerlerle eşleşmesi gerekir.
Depolama hesabı kullanarak hızlı dağıtım oluşturma
Paket (.cspkg veya .zip) dosyası, yapılandırma (.cscfg) dosyası ve tanım (.csdef) dosyalarını kullanarak bir Cloud Services (genişletilmiş destek) dağıtımı oluşturun:
$cspkgFilePath = "<Path to .cspkg file>"
$cscfgFilePath = "<Path to .cscfg file>"
$csdefFilePath = "<Path to .csdef file>"
# Create a Cloud Services (extended support) deployment
New-AzCloudService
-Name "ContosoCS" `
-ResourceGroupName "ContosOrg" `
-Location "EastUS" `
-ConfigurationFile $cscfgFilePath `
-DefinitionFile $csdefFilePath `
-PackageFile $cspkgFilePath `
-StorageAccount $storageAccount `
[-KeyVaultName <string>]
SAS URI'si kullanarak hızlı dağıtım oluşturma
Dağıtım için paket (.cspkg veya .zip) dosyasını depolama hesabına yükleyin:
$tokenStartTime = Get-Date $tokenEndTime = $tokenStartTime.AddYears(1) $cspkgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cspkg” -Container “contosocontainer” -Blob “ContosoApp.cspkg” -Context $storageAccount.Context $cspkgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cspkgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context $cspkgUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri + $cspkgToken $cscfgFilePath = "<Path to cscfg file>" $csdefFilePath = "<Path to csdef file>"
Paket (.cspkg veya .zip) dosyası, yapılandırma (.cscfg) dosyası ve tanım (.csdef) dosyası SAS URI'sini kullanarak Cloud Services (genişletilmiş destek) dağıtımı oluşturun:
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
Profil nesnelerini ve SAS URI'lerini kullanarak dağıtım oluşturma
Cloud Services (genişletilmiş destek) yapılandırma (.cscfg) dosyanızı depolama hesabına yükleyin:
$cscfgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cscfg” -Container contosocontainer -Blob “ContosoApp.cscfg” -Context $storageAccount.Context $cscfgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cscfgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context $cscfgUrl = $cscfgBlob.ICloudBlob.Uri.AbsoluteUri + $cscfgToken
Cloud Services (genişletilmiş destek) paketi (.cspkg veya .zip) dosyanızı depolama hesabına yükleyin:
$tokenStartTime = Get-Date $tokenEndTime = $tokenStartTime.AddYears(1) $cspkgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cspkg” -Container “contosocontainer” -Blob “ContosoApp.cspkg” -Context $storageAccount.Context $cspkgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cspkgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context $cspkgUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri + $cspkgToken
Sanal ağı ve alt ağı oluşturun. Mevcut bir ağ ve alt ağ kullanıyorsanız bu adım isteğe bağlıdır. Bu örnekte hem Cloud Services (genişletilmiş destek) rolleri (WebRole hem de WorkerRole) için tek bir sanal ağ ve alt ağ kullanılır.
$subnet = New-AzVirtualNetworkSubnetConfig -Name "ContosoWebTier1" -AddressPrefix "10.0.0.0/24" -WarningAction SilentlyContinue $virtualNetwork = New-AzVirtualNetwork -Name “ContosoVNet” -Location “East US” -ResourceGroupName “ContosOrg” -AddressPrefix "10.0.0.0/24" -Subnet $subnet
Bir genel IP adresi oluşturun ve genel IP adresi için bir DNS etiketi değeri ayarlayın. Cloud Services (genişletilmiş destek) yalnızca Temel SKU genel IP adresini destekler. Standart SKU genel IP adresleri Cloud Services (genişletilmiş destek) ile çalışmaz.
Statik IP adresi kullanıyorsanız, dağıtım için yapılandırma (.cscfg) dosyasında ayrılmış IP adresi olarak başvurmanız gerekir.
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic
Bir ağ profili nesnesi oluşturun ve genel IP adresini yük dengeleyicinin ön ucuyla ilişkilendirin. Azure platformu, Cloud Services (genişletilmiş destek) kaynağıyla aynı abonelikte otomatik olarak bir Klasik SKU yük dengeleyici kaynağı oluşturur. Yük dengeleyici, Azure Resource Manager'da salt okunur bir kaynaktır. Kaynakları yalnızca Cloud Services (genişletilmiş destek) yapılandırması (.cscfg) dosyası ve dağıtım (.csdef) dosyası aracılığıyla güncelleştirebilirsiniz.
$publicIP = Get-AzPublicIpAddress -ResourceGroupName ContosOrg -Name ContosIp $feIpConfig = New-AzCloudServiceLoadBalancerFrontendIPConfigurationObject -Name 'ContosoFe' -PublicIPAddressId $publicIP.Id $loadBalancerConfig = New-AzCloudServiceLoadBalancerConfigurationObject -Name 'ContosoLB' -FrontendIPConfiguration $feIpConfig $networkProfile = @{loadBalancerConfiguration = $loadBalancerConfig}
Anahtar kasası oluşturma. Anahtar kasası, Cloud Services (genişletilmiş destek) rolleri ile ilişkili sertifikaları depolar. Anahtar kasası, Cloud Services (genişletilmiş destek) dağıtımıyla aynı bölgede ve abonelikte olmalı ve benzersiz bir ada sahip olmalıdır. Daha fazla bilgi için bkz. Cloud Services ile sertifikaları kullanma (genişletilmiş destek).
New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US”
Anahtar kasası erişim ilkesini güncelleştirin ve kullanıcı hesabınıza sertifika izinleri verin:
Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,delete
Alternatif olarak, değerini kullanarak
ObjectId
erişim ilkesini ayarlayın. Değeri almakObjectId
için komutunu çalıştırınGet-AzADUser
:Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete
Aşağıdaki örnek, bir anahtar kasasına otomatik olarak imzalanan bir sertifika ekler. Cloud Services (genişletilmiş destek) rolleri için yapılandırma (.cscfg) dosyası aracılığıyla sertifika parmak izini eklemeniz gerekir.
$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $Policy
Bellek içi bir işletim sistemi profili nesnesi oluşturun. İşletim sistemi profili, önceki adımda oluşturduğunuz sertifika olan Cloud Services (genişletilmiş destek) rolleri ile ilişkili sertifikaları belirtir.
$keyVault = Get-AzKeyVault -ResourceGroupName ContosOrg -VaultName ContosKeyVault $certificate = Get-AzKeyVaultCertificate -VaultName ContosKeyVault -Name ContosCert $secretGroup = New-AzCloudServiceVaultSecretGroupObject -Id $keyVault.ResourceId -CertificateUrl $certificate.SecretId $osProfile = @{secret = @($secretGroup)}
Bellek içi bir rol profili nesnesi oluşturun. Rol profili, bir rolün ad, kapasite ve katman gibi SKU'ya özgü özelliklerini tanımlar. Bu örnekte iki rol tanımlanmıştır: frontendRole ve backendRole. Rol profili bilgileri, dağıtım yapılandırması (.cscfg) dosyası ve tanım (.csdef) dosyasında tanımlanan rol yapılandırmasıyla eşleşmelidir.
$frontendRole = New-AzCloudServiceRoleProfilePropertiesObject -Name 'ContosoFrontend' -SkuName 'Standard_D1_v2' -SkuTier 'Standard' -SkuCapacity 2 $backendRole = New-AzCloudServiceRoleProfilePropertiesObject -Name 'ContosoBackend' -SkuName 'Standard_D1_v2' -SkuTier 'Standard' -SkuCapacity 2 $roleProfile = @{role = @($frontendRole, $backendRole)}
(İsteğe bağlı) Cloud Services (genişletilmiş destek) dağıtımınıza eklemek için bellek içi bir uzantı profili nesnesi oluşturun. Bu örnek bir Uzak Masaüstü Protokolü (RDP) uzantısı ekler:
$credential = Get-Credential $expiration = (Get-Date).AddYears(1) $rdpExtension = New-AzCloudServiceRemoteDesktopExtensionObject -Name 'RDPExtension' -Credential $credential -Expiration $expiration -TypeHandlerVersion '1.2.1' $storageAccountKey = Get-AzStorageAccountKey -ResourceGroupName "ContosOrg" -Name "contosostorageaccount" $configFile = "<WAD public configuration file path>" $wadExtension = New-AzCloudServiceDiagnosticsExtension -Name "WADExtension" -ResourceGroupName "ContosOrg" -CloudServiceName "ContosCS" -StorageAccountName "contosostorageaccount" -StorageAccountKey $storageAccountKey[0].Value -DiagnosticsConfigurationPath $configFile -TypeHandlerVersion "1.5" -AutoUpgradeMinorVersion $true $extensionProfile = @{extension = @($rdpExtension, $wadExtension)}
Yapılandırma (.cscfg) dosyası yalnızca
PublicConfig
etiketlere sahip olmalı ve aşağıdaki örnekte gösterildiği gibi bir ad alanı içermelidir:<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>
(İsteğe bağlı) PowerShell karma tablosunda, dağıtımınıza eklenecek etiketleri tanımlayabilirsiniz:
$tag=@{"Owner" = "Contoso"}
Tanımladığınız profil nesnelerini ve SAS URI'lerini kullanarak Cloud Services (genişletilmiş destek) dağıtımı oluşturun:
$cloudService = New-AzCloudService ` -Name “ContosoCS” ` -ResourceGroupName “ContosOrg” ` -Location “East US” ` -PackageUrl $cspkgUrl ` -ConfigurationUrl $cscfgUrl ` -UpgradeMode 'Auto' ` -RoleProfile $roleProfile ` -NetworkProfile $networkProfile ` -ExtensionProfile $extensionProfile ` -OSProfile $osProfile ` -Tag $tag
İlgili içerik
- Cloud Services (genişletilmiş destek) için sık sorulan soruları gözden geçirin.
- Azure portalını, ARM şablonunu veya Visual Studio'yu kullanarak Cloud Services'ı (genişletilmiş destek) dağıtın.
- Cloud Services (genişletilmiş destek) örnekleri deposunu ziyaret edin.