Menyebarkan Cloud Services (dukungan yang diperluas) dengan menggunakan Azure PowerShell

Penting

Mulai 31 Maret 2025, Cloud Services (dukungan diperpanjang) tidak digunakan lagi dan akan sepenuhnya dihentikan pada 31 Maret 2027. Pelajari selengkapnya tentang penghentian fitur ini dan cara bermigrasi.

Artikel ini memperlihatkan kepada Anda cara menggunakan modul Azure PowerShell Az.CloudService untuk membuat penyebaran Azure Cloud Services (dukungan diperluas) yang memiliki beberapa peran (WebRole dan WorkerRole).

Prasyarat

Selesaikan langkah-langkah berikut sebagai prasyarat untuk membuat penyebaran Anda dengan menggunakan Azure PowerShell.

  1. Tinjau prasyarat penyebaran untuk Cloud Services (dukungan yang diperluas) dan buat sumber daya yang diperlukan.

  2. Instal modul Az.CloudService PowerShell:

    Install-Module -Name Az.CloudService 
    
  3. Membuat grup sumber daya baru. Langkah ini bersifat opsional jika Anda menggunakan grup sumber daya yang ada.

    New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US” 
    
  4. Buat akun penyimpanan dan wadah di Azure untuk menyimpan file paket (.cspkg atau .zip) dan file konfigurasi (.cscfg) untuk penyebaran Layanan Cloud (dukungan diperluas). Anda harus menggunakan nama unik untuk nama akun penyimpanan. Langkah ini bersifat opsional jika Anda menggunakan akun penyimpanan yang sudah ada.

    $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 
    

Menyebarkan Layanan Cloud dengan dukungan diperpanjang

Untuk menyebarkan Cloud Services (dukungan yang diperluas), gunakan salah satu opsi cmdlet PowerShell berikut:

  • Membuat penyebaran dengan cepat menggunakan akun penyimpanan

    • Parameter ini berfungsi untuk memasukkan file paket (.cspkg atau .zip), file konfigurasi (.cscfg), dan file definisi (.csdef) sebagai input untuk penyebaran dengan akun penyimpanan.
    • Cmdlet membuat profil peran Cloud Services (dukungan diperluas), profil jaringan, dan profil OS dengan input minimal.
    • Untuk memasukkan sertifikat, Anda harus memasukkan nama penyimpanan kunci. Thumbprint sertifikat di dalam brankas kunci diverifikasi terhadap sertifikat yang Anda tentukan dalam file konfigurasi (.cscfg) untuk penyebaran.
  • Buat cepat penyebaran dengan menggunakan URI tanda tangan akses bersama

    • Set parameter ini memasukkan URI Tanda Tangan Akses Bersama (SAS) dari file paket (.cspkg atau .zip) beserta jalur lokal ke file konfigurasi (.cscfg) dan file definisi (.csdef). Tidak diperlukan input akun penyimpanan.
    • Cmdlet membuat profil peran layanan cloud, profil jaringan, dan input minimal profil OS.
    • Untuk memasukkan sertifikat, Anda harus memasukkan nama penyimpanan kunci. Thumbprint sertifikat di dalam brankas kunci diverifikasi terhadap sertifikat yang Anda tentukan dalam file konfigurasi (.cscfg) untuk penyebaran.
  • Membuat penyebaran dengan menggunakan profil peran, profil OS, profil jaringan, dan profil ekstensi dengan URI tanda tangan akses bersama

    • Set parameter ini menentukan URI SAS dari file paket (.cspkg atau .zip) dan file konfigurasi (.cscfg).
    • Anda harus menentukan objek profil: profil peran, profil jaringan, profil OS, dan profil ekstensi. Profil harus cocok dengan nilai yang Anda tetapkan dalam file konfigurasi (.cscfg) dan definisi (.csdef).

Membuat penyebaran dengan cepat menggunakan akun penyimpanan

Buat penyebaran Cloud Services (dukungan diperluas) menggunakan file paket (.cspkg atau .zip), file konfigurasi (.cscfg), dan file definisi (.csdef):

$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>]

Cepat buat penyebaran dengan menggunakan URI SAS

  1. Unggah file paket (.cspkg atau .zip) untuk penyebaran ke akun penyimpanan:

    $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>"
    
  2. Buat penyebaran Layanan Cloud (dukungan diperpanjang) dengan menggunakan file paket (.cspkg atau .zip), file konfigurasi (.cscfg), dan file definisi (.csdef) SAS URI.

    New-AzCloudService
        -Name "ContosoCS" `
        -ResourceGroupName "ContosOrg" `
        -Location "EastUS" `
        -ConfigurationFile $cspkgFilePath `
        -DefinitionFile $csdefFilePath `
        -PackageURL $cspkgUrl `
        [-KeyVaultName <string>]
    

Membuat penyebaran dengan menggunakan objek profil dan URI SAS

  1. Unggah file konfigurasi Cloud Services (dukungan diperluas) (.cscfg) Anda ke akun penyimpanan:

    $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 
    
  2. Unggah file paket Cloud Services (dukungan yang diperluas) (.cspkg atau .zip) Anda ke akun penyimpanan:

    $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 
    
  3. Buat jaringan virtual dan subnet. Langkah ini bersifat opsional jika Anda menggunakan jaringan dan subnet yang ada. Contoh ini menggunakan satu jaringan virtual dan subnet untuk peran Cloud Services (dukungan yang diperluas) (WebRole dan WorkerRole).

    $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 
    
  4. Buat alamat IP publik dan tetapkan nilai label DNS untuk alamat IP publik. Cloud Services (dukungan yang diperluas) hanya mendukung alamat IP publik dengan SKU Dasar. Alamat IP publik SKU standar tidak berfungsi dengan Cloud Services (dukungan yang diperluas).

    Jika Anda menggunakan alamat IP statis, Anda harus mereferensikannya sebagai alamat IP cadangan dalam file konfigurasi (.cscfg) dalam penyebaran.

    $publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic 
    
  5. Buat objek profil jaringan, lalu kaitkan alamat IP publik ke ujung depan load balancer. Platform Azure secara otomatis membuat sumber daya penyeimbang beban SKU Klasik dalam langganan yang sama dengan sumber daya Layanan Cloud (dukungan diperpanjang). Load balancer merupakan sumber daya baca-saja di Azure Resource Manager. Anda hanya dapat memperbarui sumber daya melalui file konfigurasi Cloud Services (dukungan diperpanjang) (.cscfg) dan file penyebaran (.csdef).

    $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} 
    
  6. Buat brankas kunci. Brankas kunci menyimpan sertifikat yang terkait dengan peran Cloud Services (dukungan yang diperluas). Brankas kunci harus berada di wilayah dan langganan yang sama dengan penerapan Layanan Cloud (dengan dukungan yang diperluas) serta memiliki nama yang unik. Untuk informasi selengkapnya, lihat Menggunakan sertifikat dengan Cloud Services (dukungan yang diperluas).

    New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US” 
    
  7. Perbarui kebijakan akses brankas kunci dan berikan izin sertifikat ke akun pengguna Anda:

    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment
    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,delete 
    

    Atau, tetapkan kebijakan akses dengan menggunakan nilai ObjectId. Untuk mendapatkan nilai ObjectId, jalankan Get-AzADUser.

    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete 
    
  8. Contoh berikut menambahkan sertifikat yang ditandatangani sendiri ke Key Vault. Anda harus menambahkan thumbprint sertifikat melalui file konfigurasi (.cscfg) untuk fungsi Cloud Services (dukungan lanjutan).

    $Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal 
    Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $Policy 
    
  9. Buat objek profil OS di dalam memori. Profil OS menentukan sertifikat yang terkait dengan peran Cloud Services (dukungan yang diperluas), yang merupakan sertifikat yang Anda buat di langkah sebelumnya.

    $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)} 
    
  10. Buat objek profil peran di dalam memori. Profil peran mendefinisikan properti khusus SKU peran seperti nama, kapasitas, dan tingkatan. Dalam contoh ini, dua peran didefinisikan: frontendRole dan backendRole. Informasi profil peran harus sesuai dengan konfigurasi peran yang ditetapkan dalam file konfigurasi penyebaran (.cscfg) dan file definisi (.csdef).

    $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)} 
    
  11. (Opsional) Buat objek profil ekstensi dalam memori untuk ditambahkan ke penyebaran Cloud Services (dukungan diperluas). Contoh ini menambahkan ekstensi Protokol Desktop Jauh (RDP):

    $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)} 
    

    File konfigurasi (.cscfg) seharusnya hanya memiliki tag PublicConfig dan harus berisi namespace seperti ditunjukkan dalam contoh berikut:

    <?xml version="1.0" encoding="utf-8"?>
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        ...............
    </PublicConfig>
    
  12. (Opsional) Dalam tabel hash PowerShell, Anda dapat menentukan tag untuk ditambahkan ke penyebaran Anda:

    $tag=@{"Owner" = "Contoso"} 
    
  13. Buat penyebaran layanan cloud (dukungan diperluas) dengan menggunakan objek profil dan URI SAS yang telah Anda tentukan.

    $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