Bagikan melalui


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

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 kontainer di Azure untuk menyimpan file dan file paket (.cspkg atau .zip) dan file konfigurasi (.cscfg) untuk penyebaran Cloud Services (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 Azure Cloud Services (dukungan yang diperluas)

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

  • Buat cepat penyebaran dengan menggunakan akun penyimpanan

    • Set parameter ini memasukkan file paket (.cspkg atau .zip), file konfigurasi (.cscfg), dan file definisi (.csdef) untuk penyebaran sebagai input dengan akun penyimpanan.
    • Cmdlet membuat profil peran Cloud Services (dukungan diperluas), profil jaringan, dan profil OS dengan input minimal.
    • Untuk memasukkan sertifikat, Anda harus menentukan nama brankas kunci. Thumbprint sertifikat di brankas kunci divalidasi 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) dengan jalur lokal ke file konfigurasi (.cscfg) file dan 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 menentukan nama brankas kunci. Thumbprint sertifikat di brankas kunci divalidasi 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 memasukkan URI SAS dari file dan konfigurasi paket (.cspkg atau .zip) (.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).

Buat cepat penyebaran dengan menggunakan akun penyimpanan

Buat penyebaran Cloud Services (dukungan diperluas) dengan 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>]

Membuat penyebaran dengan cepat 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 Cloud Services (dukungan diperluas) 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 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 yang dipesan dalam file konfigurasi (.cscfg) untuk 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 load balancer SKU Klasik dalam langganan yang sama dengan sumber daya Cloud Services (dukungan yang diperluas). Load balancer adalah sumber daya baca-saja di Azure Resource Manager. Anda hanya dapat memperbarui sumber daya melalui file konfigurasi (.cscfg) konfigurasi Cloud Services (.cscfg) dan 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. Membuat 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 penyebaran Cloud Services (dukungan yang diperluas) dan 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 ObjectId nilai . Untuk mendapatkan nilai , jalankan ObjectId 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 brankas kunci. Anda harus menambahkan thumbprint sertifikat melalui file konfigurasi (.cscfg) untuk peran Cloud Services (dukungan yang diperluas).

    $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 dalam memori profil OS. 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 dalam memori profil peran. 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 cocok dengan konfigurasi peran yang ditentukan dalam file dan definisi konfigurasi penyebaran (.cscfg) (.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 dalam memori profil ekstensi untuk ditambahkan ke penyebaran Cloud Services (dukungan yang 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 PublicConfig memiliki tag dan harus berisi namespace seperti yang 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 Cloud Services (dukungan diperluas) dengan menggunakan objek profil dan URI SAS yang 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