Nasazení cloudové služby (Rozšířená podpora) pomocí Azure PowerShell
V tomto článku se dozvíte, jak pomocí Az.CloudService modulu PowerShellu nasadit v Azure Cloud Services (rozšířenou podporu), která má více rolí (webrole a role pracovního procesu).
Požadavky
Projděte si požadavky nasazení pro Cloud Services (Rozšířená podpora) a vytvořte přidružené prostředky.
Nainstalujte modul AZ. CloudService PowerShell.
Install-Module -Name Az.CloudServiceVytvoří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 uložení balíčku cloudové služby (. cspkg) a souborů konfigurace služby (. cscfg). Vyžaduje se jedinečný název pro název účtu úložiště. Tento krok je nepovinný, 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í Cloud Services použijte některou z následujících rutin PowerShellu (Rozšířená podpora):
rychlé vytvoření cloudové služby pomocí účtu Storage
- Tento parametr nastaví vstupní 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 se vytváří pomocí rutiny s minimálním vstupem od uživatele.
- V případě vstupu certifikátu je třeba zadat název trezoru klíčů. Kryptografické otisky certifikátů v trezoru klíčů jsou ověřovány pomocí těch, které jsou zadány v souboru. cscfg.
Rychlé vytvoření cloudové služby pomocí identifikátoru URI SAS
- Tento parametr nastaví vstup identifikátoru URI SAS souboru. cspkg spolu s místními cestami souborů. csdef a. cscfg. Není vyžadován žádný vstup z účtu úložiště.
- Profil role cloudové služby, profil sítě a profil operačního systému se vytváří pomocí rutiny s minimálním vstupem od uživatele.
- V případě vstupu certifikátu je třeba zadat název trezoru klíčů. Kryptografické otisky certifikátů v trezoru klíčů jsou ověřovány pomocí těch, které jsou zadány v souboru. cscfg.
-
- Tento parametr nastaví vstupní identifikátory URI SAS souborů. cscfg a. cspkg.
- Role, síť, operační systém a profil rozšíření musí zadat uživatel a musí odpovídat hodnotám ve. cscfg a. csdef.
rychlé vytvoření cloudové služby pomocí účtu Storage
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
Upload 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. cscfg,. csdef a. cspkg SAS.
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
Vytvoření cloudové služby pomocí objektů profilu & identifikátorů URI SAS
Upload 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 + $cscfgTokenUpload 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 + $cspkgTokenVytvořte virtuální síť a podsíť. Tento krok je nepovinný, pokud používáte stávající síť a podsíť. V tomto příkladu se používá jedna virtuální síť a podsíť pro role cloudové služby (webrole a role pracovního procesu).
$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 $subnetVytvořte veřejnou IP adresu a nastavte vlastnost Popisek DNS pro veřejnou IP adresu. Cloud Services (Rozšířená podpora) podporuje jenom veřejné IP adresy základní SKU. Veřejné IP adresy Standard SKU nefungují s Cloud Services. Pokud používáte statickou IP adresu, musíte na ni odkazovat jako na Vyhrazená IP adresa v souboru konfigurace služby (. cscfg).
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku BasicVytvoř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 "klasický" SKU pro vyrovnávání zatížení 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, který je jen pro čtení, v Azure Resource Manager. Jakékoli aktualizace prostředku se podporují jenom 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 Key Vault bude sloužit k ukládání certifikátů, které jsou přidruženy k rolím cloudové služby (Rozšířená podpora). Key Vault se musí nacházet 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 Key Vault a udělte jim oprávnění k certifikátu pro svůj uživatelský účet.
Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,deletePřípadně můžete nastavit zásady přístupu přes 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,deleteV tomto příkladu přidáme do Key Vault certifikát podepsaný svým držitelem. Kryptografický otisk certifikátu se musí přidat do souboru konfigurace cloudové služby (. cscfg) pro nasazení v rolích 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 $PolicyVytvoření profilu operačního systému v paměťovém objektu. Profil operačního systému Určuje certifikáty, které jsou přidružené k rolím cloudové služby. To bude stejný 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)}Vytvořte profil role v paměťovém objektu. Profil role definuje specifické vlastnosti SKU role, jako je název, kapacita a vrstva. V tomto příkladu jsme definovali dvě role: frontendRole a backendRole. Informace o profilu role by se měly shodovat s konfigurací role definovanou v souboru konfigurace (cscfg) a v 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 profil rozšíření s objektem v paměti, který chcete přidat do své 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ěly by obsahovat obor názvů následujícím způsobem:
<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>Volitelné Definujte značky jako zatřiďovací tabulku PowerShellu, kterou chcete přidat do své cloudové služby.
$tag=@{"Owner" = "Contoso"}Vytvářejte nasazení cloudové služby pomocí objektů profilu & 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
- Přečtěte si Nejčastější dotazy k Cloud Services (Rozšířená podpora).
- Nasaďte cloudovou službu (rozšířenou podporu) pomocí Azure Portal, PowerShellu, šablony nebo Visual Studio.
- Přejděte do úložiště ukázek Cloud Services (rozšířené podpory).