Sdílet prostřednictvím


Nasazení cloudových služeb (rozšířená podpora) pomocí Azure PowerShellu

V tomto článku se dozvíte, jak pomocí modulu Az.CloudService Azure PowerShell vytvořit nasazení azure Cloud Services (rozšířená podpora), které má více rolí (Role WebRole a WorkerRole).

Požadavky

Podle požadavků na vytvoření nasazení pomocí Azure PowerShellu proveďte následující kroky.

  1. Projděte si požadavky na nasazení cloudových služeb (rozšířená podpora) a vytvořte požadované prostředky.

  2. Nainstalujte modul Az.CloudService PowerShell:

    Install-Module -Name Az.CloudService 
    
  3. Vytvoříte novou skupinu prostředků. Tento krok je nepovinný, pokud používáte existující skupinu prostředků.

    New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US” 
    
  4. Vytvořte v Azure účet úložiště a kontejner pro uložení souboru a konfigurace balíčku (.cspkg nebo .zip) pro nasazení cloudových služeb (rozšířená podpora). Pro název účtu úložiště musíte použít jedinečný název. Tento krok je volitelný, pokud používáte existující účet úložiště.

    $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 
    

Nasazení Cloud Services (rozšířená podpora)

K nasazení cloudových služeb (rozšířená podpora) použijte některou z následujících možností rutin PowerShellu:

  • Rychlé vytvoření nasazení pomocí účtu úložiště

    • Tato sada parametrů zadá soubor balíčku (.cspkg nebo .zip), konfigurační soubor (.cscfg) a soubor definice (.csdef) pro nasazení jako vstupy s účtem úložiště.
    • Profil role Cloud Services (rozšířená podpora), profil sítě a profil operačního systému vytváří rutina s minimálním vstupem.
    • Pokud chcete zadat certifikát, musíte zadat název trezoru klíčů. Kryptografické otisky certifikátu v trezoru klíčů se ověřují vůči certifikátům zadaným v souboru konfigurace (.cscfg) pro nasazení.
  • Rychlé vytvoření nasazení pomocí identifikátoru URI sdíleného přístupového podpisu

    • Tato sada parametrů zadá identifikátor URI sdíleného přístupového podpisu (SAS) souboru balíčku (.cspkg nebo .zip) s místními cestami k souboru konfigurace (.cscfg) a souboru definice (.csdef). Nevyžaduje se žádný vstup účtu úložiště.
    • Profil role cloudové služby, profil sítě a profil operačního systému vytváří rutina s minimálním vstupem.
    • Pokud chcete zadat certifikát, musíte zadat název trezoru klíčů. Kryptografické otisky certifikátu v trezoru klíčů se ověřují vůči certifikátům zadaným v souboru konfigurace (.cscfg) pro nasazení.
  • Vytvoření nasazení pomocí profilu role, profilu operačního systému, profilu sítě a profilu rozšíření s identifikátory URI sdíleného přístupového podpisu

    • Tato sada parametrů zadá identifikátory URI SAS souboru balíčku (.cspkg nebo .zip) a konfiguračního souboru (.cscfg).
    • Je nutné zadat objekty profilu: profil role, profil sítě, profil operačního systému a profil rozšíření. Profily musí odpovídat hodnotám, které jste nastavili v souboru konfigurace (.cscfg) a souboru definice (.csdef).

Rychlé vytvoření nasazení pomocí účtu úložiště

Vytvořte nasazení cloudových služeb (rozšířená podpora) pomocí souboru balíčku (.cspkg nebo .zip), konfiguračního souboru (.cscfg) a definice (.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>]

Rychlé vytvoření nasazení pomocí identifikátoru URI SAS

  1. Nahrajte soubor balíčku (.cspkg nebo .zip) pro nasazení do účtu úložiště:

    $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. Vytvořte nasazení cloudových služeb (rozšířená podpora) pomocí souboru SAS URI SAS balíčku (.cspkg nebo .zip), konfiguračního souboru (.cscfg) a definice (.csdef):

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

Vytvoření nasazení pomocí objektů profilu a identifikátorů URI SAS

  1. Nahrajte soubor konfigurace služby Cloud Services (rozšířená podpora) (.cscfg) do účtu úložiště:

    $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. Nahrajte soubor balíčku Cloud Services (rozšířená podpora) (.cspkg nebo .zip) do účtu úložiště:

    $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. Vytvořte virtuální síť a podsíť. Tento krok je volitelný, pokud používáte existující síť a podsíť. Tento příklad používá jednu virtuální síť a podsíť pro role Cloud Services (rozšířená podpora) (WebRole i 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. Vytvořte veřejnou IP adresu a nastavte hodnotu popisku DNS pro veřejnou IP adresu. Cloud Services (rozšířená podpora) podporuje pouze veřejnou IP adresu skladové položky Basic . Veřejné IP adresy standardní skladové položky nefungují s Cloud Services (rozšířená podpora).

    Pokud používáte statickou IP adresu, musíte na ni odkazovat jako na vyhrazenou IP adresu v souboru konfigurace (.cscfg) pro nasazení.

    $publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic 
    
  5. Vytvořte objekt profilu sítě a přidružte veřejnou IP adresu k front-endu nástroje pro vyrovnávání zatížení. Platforma Azure automaticky vytvoří prostředek nástroje pro vyrovnávání zatížení SKU Classic ve stejném předplatném jako prostředek Cloud Services (rozšířená podpora). Nástroj pro vyrovnávání zatížení je prostředek jen pro čtení v Azure Resource Manageru. Prostředky můžete aktualizovat pouze prostřednictvím souboru konfigurace cloudových služeb (.cscfg) a souboru nasazení (.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. Vytvořte trezor klíčů. Trezor klíčů ukládá certifikáty přidružené k rolím Cloud Services (rozšířená podpora). Trezor klíčů musí být ve stejné oblasti a předplatném jako nasazení Cloud Services (rozšířená podpora) a musí mít jedinečný název. Další informace najdete v tématu Použití certifikátů se službou Cloud Services (rozšířená podpora).

    New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US” 
    
  7. Aktualizujte zásady přístupu trezoru klíčů a udělte oprávnění certifikátu k vašemu uživatelskému účtu:

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

    Případně nastavte zásadu přístupu pomocí ObjectId hodnoty. Hodnotu získáte spuštěním ObjectIdGet-AzADUserpříkazu :

    Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete 
    
  8. Následující příklad přidá certifikát podepsaný svým držitelem do trezoru klíčů. Kryptografický otisk certifikátu musíte přidat prostřednictvím souboru konfigurace (.cscfg) pro role Cloud Services (rozšířená podpora).

    $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. Vytvořte objekt v paměti profilu operačního systému. Profil operačního systému určuje certifikáty, které jsou přidružené k rolím Cloud Services (rozšířená podpora). Toto je certifikát, který jste vytvořili v předchozím kroku.

    $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. Vytvoření objektu v paměti profilu role Profil role definuje vlastnosti specifické pro skladovou položku role, jako je název, kapacita a úroveň. V tomto příkladu jsou definovány dvě role: frontendRole a back-endRole. Informace o profilu role musí odpovídat konfiguraci role definované v souboru konfigurace nasazení (.cscfg) a souboru definice (.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. (Volitelné) Vytvořte objekt profilu rozšíření v paměti, který se přidá do nasazení cloudových služeb (rozšířená podpora). Tento příklad přidá rozšíření RDP (Remote Desktop Protocol):

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

    Soubor konfigurace (.cscfg) by měl obsahovat pouze PublicConfig značky a měl by obsahovat obor názvů, jak je znázorněno v následujícím příkladu:

    <?xml version="1.0" encoding="utf-8"?>
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
        ...............
    </PublicConfig>
    
  12. (Volitelné) V tabulce hodnot hash PowerShellu můžete definovat značky, které chcete přidat do nasazení:

    $tag=@{"Owner" = "Contoso"} 
    
  13. Vytvořte nasazení cloudových služeb (rozšířená podpora) pomocí objektů profilu a identifikátorů URI SAS, které jste definovali:

    $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