Een cloudservice implementeren (uitgebreide ondersteuning) met behulp van Azure PowerShell
In dit artikel wordt beschreven hoe u de PowerShell-module gebruikt voor het implementeren van Cloud Services (uitgebreide ondersteuning) in Azure met meerdere rollen Az.CloudService (WebRole en WorkerRole).
Vereisten
Controleer de implementatievoorwaarden voor Cloud Services (uitgebreide ondersteuning) en maak de bijbehorende resources.
Installeer de Az.CloudService PowerShell-module.
Install-Module -Name Az.CloudServiceEen nieuwe resourcegroep maken. Deze stap is optioneel als u een bestaande resourcegroep gebruikt.
New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US”Maak een opslagaccount en container, die worden gebruikt voor het opslaan van de cloudservicepakketbestanden (.cspkg) en serviceconfiguratiebestanden (.cscfg). Een unieke naam voor de naam van het opslagaccount is vereist. Deze stap is optioneel als u een bestaand opslagaccount gebruikt.
$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
Een Cloud Services implementeren (uitgebreide ondersteuning)
Gebruik een van de volgende PowerShell-cmdlets voor het implementeren van Cloud Services (uitgebreide ondersteuning):
Snel een cloudservice maken met een Storage account
- Met deze parameterset worden de bestanden .cscfg, .cspkg en .csdef samen met het opslagaccount ingevoerd.
- Het rolprofiel voor de cloudservice, het netwerkprofiel en het besturingssysteemprofiel worden gemaakt door de cmdlet met minimale invoer van de gebruiker.
- Voor certificaatinvoer moet de naam van de sleutelkault worden opgegeven. De certificaatvingerafdrukken in de sleutelkluis worden gevalideerd met de vingerafdruk die is opgegeven in het CSCFG-bestand.
Snelle cloudservice maken met behulp van een SAS-URI
- Deze parameterset bevat de SAS-URI van de .cspkg, samen met de lokale paden van .csdef- en .cscfg-bestanden. Er is geen opslagaccountinvoer vereist.
- Het rolprofiel voor de cloudservice, het netwerkprofiel en het besturingssysteemprofiel worden gemaakt door de cmdlet met minimale invoer van de gebruiker.
- Voor certificaatinvoer moet de naam van de sleutelkault worden opgegeven. De certificaatvingerafdrukken in de sleutelkluis worden gevalideerd met de vingerafdruk die is opgegeven in het CSCFG-bestand.
Cloudservice maken met rol-, besturingssysteem-, netwerk- en extensieprofiel en SAS-URI's
- Met deze parameterset worden de SAS-URI's van de CSCFG- en .cspkg-bestanden ingevoerd.
- De rol, het netwerk, het besturingssysteem en het extensieprofiel moeten worden opgegeven door de gebruiker en moeten overeenkomen met de waarden in .cscfg en .csdef.
Snel een cloudservice maken met een Storage account
Maak cloudservice-implementatie met behulp van .cscfg-, .csdef- en .cspkg-bestanden.
$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>]
Snelle cloudservice maken met behulp van een SAS-URI
Upload Cloud Service-pakket (cspkg) toevoegen aan het opslagaccount.
$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>"Maak cloudservice-implementatie met behulp van .cscfg, .csdef en .cspkg SAS URI.
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
Cloudservice maken met behulp van profielobjecten & SAS-URI's
Upload cloudserviceconfiguratie (cscfg) toevoegen aan het opslagaccount.
$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 Cloud Service-pakket (cspkg) toevoegen aan het opslagaccount.
$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 + $cspkgTokenMaak een virtueel netwerk en subnet. Deze stap is optioneel als u een bestaand netwerk en subnet gebruikt. In dit voorbeeld wordt één virtueel netwerk en subnet gebruikt voor beide cloudservicerollen (WebRole en 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 $subnetMaak een openbaar IP-adres en stel de eigenschap DNS-label van het openbare IP-adres in. Cloud Services (uitgebreide ondersteuning) ondersteunt alleen openbare IP-adressen van basic-SKU's. Openbare IP's van de Standard-SKU werken niet met Cloud Services. Als u een statisch IP-adres gebruikt, moet u hier naar verwijzen als een Gereserveerd IP in het serviceconfiguratiebestand (.cscfg).
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku BasicMaak een netwerkprofielobject en koppel het openbare IP-adres aan de front-load balancer. Het Azure-platform maakt automatisch een 'klassieke' SKU load balancer resource in hetzelfde abonnement als de cloudserviceresource. De load balancer resource is een alleen-lezen resource in Azure Resource Manager. Updates voor de resource worden alleen ondersteund via de implementatiebestanden van de cloudservice (.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}Een sleutelkluis maken. Deze Key Vault worden gebruikt voor het opslaan van certificaten die zijn gekoppeld aan de cloudservicerollen (uitgebreide ondersteuning). De Key Vault moeten zich in dezelfde regio en hetzelfde abonnement bevinden als de cloudservice en een unieke naam hebben. Zie Certificaten gebruiken met Azure Cloud Services (uitgebreide ondersteuning) voor meer informatie.
New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US”Werk het Key Vault toegangsbeleid bij en verleen certificaatmachtigingen aan uw gebruikersaccount.
Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,deleteU kunt ook toegangsbeleid instellen via ObjectId (dat kan worden verkregen door uit te
Get-AzADUservoeren).Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,deleteIn dit voorbeeld voegen we een zelf-ondertekend certificaat toe aan een Key Vault. De vingerafdruk van het certificaat moet worden toegevoegd in het cloudserviceconfiguratiebestand (.cscfg) voor implementatie op cloudservicerollen.
$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $PolicyMaak een besturingssysteemprofiel in het geheugenobject. Besturingssysteemprofiel geeft de certificaten aan die zijn gekoppeld aan cloudservicerollen. Dit is hetzelfde certificaat dat u in de vorige stap hebt gemaakt.
$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)}Maak een rolprofiel in het geheugenobject. Rolprofiel definieert specifieke eigenschappen van een rol-SKU, zoals naam, capaciteit en laag. In dit voorbeeld hebben we twee rollen gedefinieerd: frontendRole en backendRole. Informatie over rolprofiel moet overeenkomen met de rolconfiguratie die is gedefinieerd in het configuratiebestand (cscfg) en het bestand met de servicedefinitie (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)}(Optioneel) Maak een extensieprofiel in het geheugenobject dat u aan uw cloudservice wilt toevoegen. Voor dit voorbeeld voegen we de RDP-extensie toe.
$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 mag alleen PublicConfig-tags bevatten en moet als volgt een naamruimte bevatten:
<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>(Optioneel) Definieer Tags als PowerShell-hashtabel die u aan uw cloudservice wilt toevoegen.
$tag=@{"Owner" = "Contoso"}Maak cloudservice-implementatie met behulp van profielobjecten & SAS-URL's.
$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
Volgende stappen
- Bekijk veelgestelde vragen over Cloud Services (uitgebreide ondersteuning).
- Implementeer een cloudservice (uitgebreide ondersteuning) met behulp van Azure Portal, PowerShell, Sjabloon of Visual Studio.
- Ga naar de opslagplaats Cloud Services voorbeelden (uitgebreide ondersteuning).