Felhőszolgáltatás üzembe helyezése (kiterjesztett támogatás) az Azure PowerShell használatával
Ez a cikk bemutatja, hogyan helyezheti üzembe a Több szerepkört (WebRole és WorkerRole) tartalmazó Cloud Servicest (kiterjesztett támogatás) a Az.CloudService
PowerShell-modullal.
Pre-requisites
Tekintse át a Cloud Services üzembehelyezési előfeltételeit (kiterjesztett támogatás), és hozza létre a társított erőforrásokat.
Telepítse az Az.CloudService PowerShell-modult.
Install-Module -Name Az.CloudService
Új erőforráscsoport létrehozása. Ez a lépés nem kötelező, ha meglévő erőforráscsoportot használ.
New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US”
Hozzon létre egy tárfiókot és tárolót, amely a Cloud Service-csomag (.cspkg) és a szolgáltatáskonfigurációs (.cscfg) fájlok tárolására szolgál. A tárfiók nevének egyedi neve szükséges. Ez a lépés nem kötelező, ha meglévő tárfiókot használ.
$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
Cloud Services üzembe helyezése (kiterjesztett támogatás)
Használja az alábbi PowerShell-parancsmagok bármelyikét a Cloud Services üzembe helyezéséhez (kiterjesztett támogatás):
Felhőszolgáltatás gyors létrehozása tárfiók használatával
- Ez a paraméter beírja a .cscfg, .cspkg és .csdef fájlokat bemenetként a tárfiókkal együtt.
- A felhőszolgáltatás-szerepkörprofilt, a hálózati profilt és az operációsrendszer-profilt a parancsmag hozza létre a felhasználó minimális bemenetével.
- A tanúsítványbevitelhez meg kell adni a kulcsvault nevét. A kulcsvaultban lévő tanúsítvány ujjlenyomatai a .cscfg fájlban megadottak szerint lesznek érvényesítve.
Gyors felhőszolgáltatás létrehozása SAS URI használatával
- Ez a paraméter beírja a .cspkg SAS URI-ját, valamint a .csdef és a .cscfg fájlok helyi elérési útját. Nincs szükség tárfiók-bemenetre.
- A felhőszolgáltatás-szerepkörprofilt, a hálózati profilt és az operációsrendszer-profilt a parancsmag hozza létre a felhasználó minimális bemenetével.
- A tanúsítványbevitelhez meg kell adni a kulcsvault nevét. A kulcsvaultban lévő tanúsítvány ujjlenyomatai a .cscfg fájlban megadottak szerint lesznek érvényesítve.
-
- Ez a paraméter beírja a .cscfg és a .cspkg fájlok SAS URI-jait.
- A szerepkör, a hálózat, az operációs rendszer és a bővítményprofilt a felhasználónak kell megadnia, és meg kell egyeznie a .cscfg és a .csdef értékeivel.
Felhőszolgáltatás gyors létrehozása tárfiók használatával
Cloud Service-üzembe helyezés létrehozása .cscfg, .csdef és .cspkg fájlokkal.
$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>]
Gyors felhőszolgáltatás létrehozása SAS URI használatával
Töltse fel a Cloud Service-csomagot (cspkg) a tárfiókba.
$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>"
Felhőszolgáltatás-üzembe helyezés létrehozása .cscfg, .csdef és .cspkg SAS URI használatával.
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
Cloud Service létrehozása profilobjektumok és SAS URI-k használatával
Töltse fel a felhőszolgáltatás konfigurációját (cscfg) a tárfiókba.
$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
Töltse fel a Cloud Service-csomagot (cspkg) a tárfiókba.
$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
Hozzon létre egy virtuális hálózatot és egy alhálózatot. Ez a lépés nem kötelező, ha meglévő hálózatot és alhálózatot használ. Ez a példa egyetlen virtuális hálózatot és alhálózatot használ mindkét felhőszolgáltatás-szerepkörhöz (WebRole és 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
Hozzon létre egy nyilvános IP-címet, és állítsa be a nyilvános IP-cím DNS-címketulajdonságát. A Cloud Services (kiterjesztett támogatás) csak az alapszintű termékváltozat nyilvános IP-címét támogatja. A standard termékváltozatú nyilvános IP-címek nem működnek a Cloud Services szolgáltatással. Ha statikus IP-címet használ, fenntartott IP-címként kell hivatkoznia rá a Service Configuration (.cscfg) fájlban.
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basic
Hozzon létre egy hálózati profilobjektumot, és társítsa a nyilvános IP-címet a terheléselosztó előtéréhez. Az Azure-platform automatikusan létrehoz egy "klasszikus" termékváltozatú terheléselosztó-erőforrást ugyanabban az előfizetésben, mint a felhőszolgáltatás-erőforrás. A terheléselosztó erőforrás egy írásvédett erőforrás az Azure Resource Managerben. Az erőforrás minden frissítése csak a felhőszolgáltatás üzembehelyezési fájljain (.cscfg & .csdef) keresztül támogatott.
$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}
Key Vault létrehozása. Ez a Key Vault a Cloud Service (kiterjesztett támogatási) szerepkörökhöz társított tanúsítványok tárolására szolgál. A Key Vaultnak ugyanabban a régióban és előfizetésben kell lennie, mint a felhőszolgáltatásnak, és egyedi névvel kell rendelkeznie. További információ: Tanúsítványok használata az Azure Cloud Services szolgáltatással (kiterjesztett támogatás).
New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US”
Frissítse a Key Vault hozzáférési szabályzatát, és adjon tanúsítványengedélyeket a felhasználói fióknak.
Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,delete
Másik lehetőségként állítsa be a hozzáférési szabályzatot az ObjectId használatával (amely a futtatással
Get-AzADUser
szerezhető be).Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete
Ebben a példában egy önaláírt tanúsítványt adunk hozzá egy Key Vaulthoz. A tanúsítvány ujjlenyomatát hozzá kell adni a Cloud Service Configuration (.cscfg) fájlhoz a felhőszolgáltatás-szerepkörökben való üzembe helyezéshez.
$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $Policy
Hozzon létre egy operációsrendszer-profilt a memóriában. Az operációsrendszer-profil a felhőszolgáltatás-szerepkörökhöz társított tanúsítványokat adja meg. Ez ugyanaz a tanúsítvány lesz, amelyet az előző lépésben hozott létre.
$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)}
Szerepkörprofil létrehozása a memóriában objektumban. A szerepkörprofil meghatároz egy szerepkör-termékváltozat-specifikus tulajdonságokat, például a nevet, a kapacitást és a réteget. Ebben a példában két szerepkört határoztunk meg: frontendRole és backendRole. A szerepkörprofil adatainak meg kell egyezniük a konfigurációs (cscfg) fájlban és a szolgáltatásdefiníciós (csdef) fájlban definiált szerepkör-konfigurációval.
$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)}
(Nem kötelező) Hozzon létre egy memóriabeli bővítményprofil-objektumot, amelyet hozzá szeretne adni a felhőszolgáltatáshoz. Ebben a példában RDP-bővítményt adunk hozzá.
$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)}
A ConfigFile-nak csak PublicConfig-címkéket kell tartalmaznia, és a következő névteret kell tartalmaznia:
<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>
(Nem kötelező) A felhőszolgáltatáshoz hozzáadni kívánt Címkék definiálása PowerShell-kivonattábláként.
$tag=@{"Owner" = "Contoso"}
Cloud Service-üzembe helyezés létrehozása profilobjektumok és SAS URL-címek használatával.
$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
További lépések
- Tekintse át a Cloud Servicesre (kiterjesztett támogatás) vonatkozó gyakori kérdéseket .
- Felhőszolgáltatás (kiterjesztett támogatás) üzembe helyezése az Azure Portal, a PowerShell, a Sablon vagy a Visual Studio használatával.
- Látogasson el a Cloud Services (kiterjesztett támogatás) mintaadattárába.