Bulut Hizmetini (genişletilmiş destek) Azure PowerShell
Bu makalede, Birden çok rolü Az.CloudService (WebRole ve WorkerRole) Cloud Services Azure'da dağıtım (genişletilmiş destek) için PowerShell modülünün nasıl kullanıldığı açıklanmıştır.
Ön koşullar
Dağıtım önkoşullarını gözden Cloud Services (genişletilmiş destek) ve ilişkili kaynakları oluşturun.
Az.CloudService PowerShell modülünü yükleyin.
Install-Module -Name Az.CloudServiceYeni bir kaynak grubu oluşturma. Mevcut bir kaynak grubu kullanıyorsanız bu adım isteğe bağlıdır.
New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US”Bulut Hizmeti paketi (.cspkg) ve Hizmet Yapılandırması (.cscfg) dosyalarını depolamak için kullanılacak bir depolama hesabı ve kapsayıcı oluşturun. Depolama hesabı adı için benzersiz bir ad gereklidir. 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
Bir Cloud Services dağıtma (genişletilmiş destek)
Aşağıdaki PowerShell cmdlet'lerini kullanarak Cloud Services (genişletilmiş destek):
Depolama Hesabı Kullanarak Bulut Hizmeti Oluşturma
- Bu parametre kümesi. .cscfg, .cspkg ve .csdef dosyalarını depolama hesabıyla birlikte giriş olarak giriş olarak kullanır.
- Bulut hizmeti rol profili, ağ profili ve işletim sistemi profili, kullanıcıdan en az girişle cmdlet tarafından oluşturulur.
- Sertifika girişi için anahtarlık adı belirtilmelidir. Keyvault'ta sertifika parmak izleri .cscfg dosyasında belirtilenlere göre doğrulanır.
SAS URI'si kullanarak Hızlı Bulut Hizmeti Oluşturma
- Bu parametre kümesi. cspkg'nin SAS URI'sini ve .csdef ve .cscfg dosyalarının yerel yollarını girdi. Depolama hesabı girişi gerekmez.
- Bulut hizmeti rol profili, ağ profili ve işletim sistemi profili, kullanıcıdan en az girişle cmdlet tarafından oluşturulur.
- Sertifika girişi için anahtarlık adı belirtilmelidir. Keyvault'ta sertifika parmak izleri .cscfg dosyasında belirtilenlere göre doğrulanır.
Rol, işletim sistemi, ağ ve uzantı profili ve SAS URL'leri ile Bulut Hizmeti oluşturma
- Bu parametre kümesi . cscfg ve .cspkg dosyalarının SAS URL'lerini girdi.
- Rol, ağ, işletim sistemi ve uzantı profili kullanıcı tarafından belirtilmelidir ve .cscfg ve .csdef değerleriyle eşleşmesi gerekir.
Depolama Hesabı kullanarak Bulut Hizmeti Oluşturma
.cscfg, .csdef ve .cspkg dosyalarını kullanarak Bulut Hizmeti dağıtımı oluşturun.
$cspkgFilePath = "<Path to cspkg file>"
$cscfgFilePath = "<Path to cscfg file>"
$csdefFilePath = "<Path to csdef file>"
# Create Cloud Service
New-AzCloudService
-Name "ContosoCS" `
-ResourceGroupName "ContosOrg" `
-Location "EastUS" `
-ConfigurationFile $cscfgFilePath `
-DefinitionFile $csdefFilePath `
-PackageFile $cspkgFilePath `
-StorageAccount $storageAccount `
[-KeyVaultName <string>]
SAS URI'si kullanarak Hızlı Bulut Hizmeti Oluşturma
Upload Hizmet paketinizi (cspkg) depolama hesabına açın.
$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>".cscfg, .csdef ve .cspkg SAS URI'sini kullanarak Bulut Hizmeti dağıtımı oluşturun.
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
SAS URL'leri için profil & Bulut Hizmeti oluşturma
Upload hizmeti yapılandırmanızı (cscfg) depolama hesabına alın.
$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 + $cscfgTokenUpload Hizmet paketinizi (cspkg) depolama hesabına açın.
$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 + $cspkgTokenSanal 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 bulut hizmeti 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 $subnetBir genel IP adresi oluşturun ve genel IP adresinin DNS etiketi özelliğini ayarlayın. Cloud Services (genişletilmiş destek) yalnızca Temel SKU Genel IP adreslerini destekler. Standart SKU Genel IP'ler, Cloud Services. Statik IP kullanıyorsanız, Hizmet Yapılandırması (.cscfg) Ayrılmış IP bir ip adresi olarak başvurabilirsiniz.
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku BasicBir Ağ Profili Nesnesi oluşturun ve genel IP adresini yük dengeleyicinin ön ucuyla ilişkilendirme. Azure platformu, bulut hizmeti kaynağıyla aynı abonelikte otomatik olarak bir 'Klasik' SKU yük dengeleyici kaynağı oluşturur. Yük dengeleyici kaynağı, veri kaynağında salt okunur Azure Resource Manager. Kaynakta yapılan tüm güncelleştirmeler yalnızca bulut hizmeti dağıtım dosyaları (.cscfg & .csdef) aracılığıyla de destekler.
$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şturun. Bu Key Vault, Bulut Hizmeti (genişletilmiş destek) rolleri ile ilişkili sertifikaları depolamak için kullanılır. Bu Key Vault bulut hizmetiyle aynı bölgede ve abonelikte yer almalı ve benzersiz bir adı olmalıdır. Daha fazla bilgi için bkz. Azure Cloud Services (genişletilmiş destek) ile sertifikaları kullanma.
New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US”Uygulama erişim Key Vault 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,deleteAlternatif olarak, ObjectId aracılığıyla erişim ilkesi ayarlayın (çalıştırarak elde
Get-AzADUseredilir).Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,deleteBu örnekte, bir sertifikaya otomatik olarak imzalanan bir sertifika Key Vault. Sertifika parmak izinin, bulut hizmeti rollerinde dağıtım için Cloud Service Configuration (.cscfg) dosyasına ekleniyor olması gerekir.
$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $PolicyBellek içinde bir işletim sistemi profili nesnesi oluşturun. OS Profili, bulut hizmeti rolleri ile ilişkili sertifikaları belirtir. Bu, önceki adımda oluşturulan sertifikanın aynısı olur.
$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çinde bir Rol Profili nesnesi oluşturun. Rol profili ad, kapasite ve katman gibi role sku'ya özgü özellikleri tanımlar. Bu örnekte iki rol tanımladı: frontendRole ve backendRole. Rol profili bilgileri, yapılandırma (cscfg) dosyasında ve hizmet tanımı (csdef) dosyasında tanımlanan rol yapılandırmasıyla eşleşmeli.
$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ı) Bulut hizmetinize eklemek istediğiniz bellek içinde bir Uzantı Profili nesnesi oluşturun. Bu örnekte RDP uzantısını ekley ineriz.
$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)}ConfigFile yalnızca PublicConfig etiketlerine sahip olmalı ve aşağıdaki gibi bir ad alanı içermeli:
<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>(İsteğe bağlı) Etiketleri, bulut hizmetinize eklemek istediğiniz PowerShell karma tablosu olarak tanımlayın.
$tag=@{"Owner" = "Contoso"}SAS URL'leri için profil nesnelerini & Bulut Hizmeti 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
Sonraki adımlar
- Daha fazla destek (genişletilmiş destek) Cloud Services sık sorulan soruları gözden geçirme.
- , PowerShell,Şablon veya Azure portal kullanarak bir BulutHizmeti (genişletilmiş destek) Visual Studio.
- Cloud Services (genişletilmiş destek) örnek deposunu ziyaret edin.