Nasazení cloudové služby (rozšířená podpora) pomocí Azure PowerShellu
Tento článek ukazuje, jak pomocí Az.CloudService
modulu PowerShell nasadit cloudovou službu (rozšířenou podporu) v Azure, která má více rolí (WebRole a WorkerRole).
Požadavky
Projděte si požadavky na nasazení cloudových služeb (rozšířená podpora) a vytvořte přidružené prostředky.
Nainstalujte modul Az.CloudService PowerShell.
Install-Module -Name Az.CloudService
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”
Vytvořte účet úložiště a kontejner, který se použije k ukládání souborů balíčku cloudové služby (.cspkg) a konfigurace služby (.cscfg). Je vyžadován jedinečný název pro název účtu úložiště. 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í cloudových služeb (rozšířená podpora)
K nasazení cloudových služeb (rozšířená podpora) použijte některou z následujících rutin PowerShellu:
Rychlé vytvoření cloudové služby pomocí účtu úložiště
- Tato sada parametrů vstupuje soubory .cscfg, .cspkg a .csdef jako vstupy spolu s účtem ú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 od uživatele.
- Pro vstup certifikátu je potřeba zadat název služby KeyVault. Kryptografické otisky certifikátu v keyvault jsou ověřeny proti kryptografickým otiskům zadaným v souboru .cscfg.
Rychlé vytvoření cloudové služby pomocí identifikátoru URI SAS
- Tato sada parametrů zadá identifikátor URI SAS souboru .cspkg spolu s místními cestami souborů .csdef a .cscfg. Není vyžadován žá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 od uživatele.
- Pro vstup certifikátu je potřeba zadat název služby KeyVault. Kryptografické otisky certifikátu v keyvault jsou ověřeny proti kryptografickým otiskům zadaným v souboru .cscfg.
-
- Tato sada parametrů zadá identifikátory URI SAS souborů .cscfg a .cspkg.
- Uživatel musí zadat profil role, sítě, operačního systému a rozšíření a musí odpovídat hodnotám v souboru .cscfg a .csdef.
Rychlé vytvoření cloudové služby pomocí účtu úložiště
Vytvořte nasazení cloudové služby pomocí souborů .cscfg, .csdef a .cspkg.
$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>]
Rychlé vytvoření cloudové služby pomocí identifikátoru URI SAS
Nahrajte balíček cloudové služby (cspkg) 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>"
Vytvořte nasazení cloudové služby pomocí identifikátoru URI SAS .cscfg, .csdef a .cspkg.
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
Vytvoření cloudové služby pomocí objektů profilu a identifikátorů URI SAS
Nahrajte konfiguraci cloudové služby (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
Nahrajte balíček cloudové služby (cspkg) 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
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 cloudové služby (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
Vytvořte veřejnou IP adresu a nastavte vlastnost popisku DNS veřejné IP adresy. Cloud Services (rozšířená podpora) podporuje jenom veřejné IP adresy skladové položky Basic . Veřejné IP adresy standardní skladové položky nefungují s cloudovými službami. Pokud používáte statickou IP adresu, musíte na ni odkazovat jako na rezervovanou IP adresu v souboru Konfigurace služby (.cscfg).
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic
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 cloudové služby. Prostředek nástroje pro vyrovnávání zatížení je prostředek jen pro čtení v Azure Resource Manageru. Všechny aktualizace prostředku se podporují pouze prostřednictvím souborů nasazení cloudové služby (.cscfg & .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}
Vytvoření trezoru klíčů Tato služba Key Vault se použije k ukládání certifikátů přidružených k rolím cloudové služby (rozšířená podpora). Služba Key Vault musí být umístěná ve stejné oblasti a předplatném jako cloudová služba a musí mít jedinečný název. Další informace najdete v tématu Použití certifikátů s Azure Cloud Services (rozšířená podpora).
New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US”
Aktualizujte zásady přístupu ke službě Key Vault 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ě můžete nastavit zásady přístupu prostřednictvím ObjectId (které lze získat spuštěním
Get-AzADUser
).Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete
V tomto příkladu přidáme certifikát podepsaný svým držitelem do služby Key Vault. Kryptografický otisk certifikátu je potřeba přidat do souboru Konfigurace cloudové služby (.cscfg) pro nasazení do rolí cloudové služby.
$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $Policy
Vytvořte objekt profilu operačního systému v paměti. Profil operačního systému určuje certifikáty, které jsou přidružené k rolím cloudové služby. Bude to stejný certifikát vytvořený 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)}
Vytvořte objekt profilu role v paměti. Profil role definuje specifické vlastnosti sku role, jako je název, kapacita a úroveň. V tomto příkladu jsme definovali dvě role: frontendRole a back-endRole. Informace o profilu role by měly odpovídat konfiguraci role definované v souboru konfigurace (cscfg) a souboru definice služby (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)}
(Volitelné) Vytvořte objekt profilu rozšíření v paměti, který chcete přidat do cloudové služby. V tomto příkladu přidáme rozšíření 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)}
ConfigFile by měl obsahovat pouze značky PublicConfig a měl by obsahovat obor názvů takto:
<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>
(Volitelné) Definujte značky jako tabulku hash PowerShellu, kterou chcete přidat do cloudové služby.
$tag=@{"Owner" = "Contoso"}
Vytvořte nasazení cloudové služby pomocí objektů profilu a adres URL SAS.
$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
Další kroky
- Projděte si nejčastější dotazy ke cloudovým službám (rozšířená podpora).
- Nasaďte cloudovou službu (rozšířenou podporu) pomocí webu Azure Portal, PowerShellu, šablony nebo sady Visual Studio.
- Navštivte úložiště ukázek cloudových služeb (rozšířená podpora).