Cloud Service (kiterjesztett támogatás) üzembe helyezése ARM-sablonokkal
Ez az oktatóanyag bemutatja, hogyan hozhat létre felhőalapú szolgáltatás (kiterjesztett támogatás) üzembe helyezését ARM-sablonok használatával.
Előkészületek
Tekintse át a Cloud Services (kiterjesztett támogatás) üzembehelyezési előfeltételeit, és hozza létre a társított erőforrásokat.
Hozzon létre egy új erőforráscsoportot a Azure Portal vagy a PowerShell használatával. Ez a lépés nem kötelező, ha meglévő erőforráscsoportot használ.
Hozzon létre egy új tárfiókot a Azure Portal vagy a PowerShell használatával. Ez a lépés nem kötelező, ha meglévő tárfiókot használ.
Töltse fel a Package (.cspkg) és a Service Configuration (.cscfg) fájlokat a tárfiókba a Azure Portal vagy a PowerShell használatával. Szerezze be az oktatóanyag későbbi részében az ARM-sablonhoz hozzáadandó mindkét fájl SAS URI-ját.
(Nem kötelező) Hozzon létre egy kulcstartót, és töltse fel a tanúsítványokat.
- A tanúsítványok csatolhatók a felhőszolgáltatásokhoz, hogy biztonságosan kommunikálhassanak a szolgáltatással és a szolgáltatással. A tanúsítványok használatához az ujjlenyomatokat meg kell adni a szolgáltatáskonfigurációs (.cscfg) fájlban, és fel kell tölteni egy kulcstartóba. A kulcstartók a Azure Portal vagy a PowerShell használatával hozhatók létre.
- A társított kulcstartónak ugyanabban a régióban és előfizetésben kell lennie, mint a felhőszolgáltatásnak.
- A társított kulcstartónak engedélyeznie kell a megfelelő engedélyeket, hogy Cloud Services (kiterjesztett támogatású) erőforrás le tudja kérni a tanúsítványokat Key Vault. További információ: Tanúsítványok és Key Vault
- A kulcstartóra az ARM-sablon OsProfile szakaszában kell hivatkozni, amely az alábbi lépésekben látható.
Felhőszolgáltatás üzembe helyezése (kiterjesztett támogatás)
Megjegyzés
Az ARM-sablon és paraméterfájl létrehozásának egyszerűbb és gyorsabb módja a Azure Portal. A létrehozott ARM-sablont a portálon keresztül töltheti le a Felhőszolgáltatás PowerShell-lel történő létrehozásához
Virtuális hálózat létrehozása. A virtuális hálózat nevének meg kell egyeznie a Szolgáltatáskonfiguráció (.cscfg) fájlban szereplő hivatkozásokkal. Ha meglévő virtuális hálózatot használ, hagyja ki ezt a szakaszt az ARM-sablonból.
"resources": [ { "apiVersion": "2019-08-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('vnetName')]", "location": "[parameters('location')]", "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "subnets": [ { "name": "WebTier", "properties": { "addressPrefix": "10.0.0.0/24" } } ] } } ]
Ha új virtuális hálózatot hoz létre, adja hozzá a következőt a
dependsOn
szakaszhoz, és győződjön meg arról, hogy a platform a felhőszolgáltatás létrehozása előtt hozza létre a virtuális hálózatot."dependsOn": [ "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]" ]
Hozzon létre egy nyilvános IP-címet, és (opcionálisan) állítsa be a nyilvános IP-cím DNS-címke tulajdonságát. Ha statikus IP-címet használ, fenntartott IP-címként kell hivatkoznia rá a Service Configuration (.cscfg) fájlban. Ha meglévő IP-címet használ, hagyja ki ezt a lépést, és adja hozzá az IP-címadatokat közvetlenül az ARM-sablon terheléselosztó konfigurációs beállításaihoz.
"resources": [ { "apiVersion": "2019-08-01", "type": "Microsoft.Network/publicIPAddresses", "name": "[parameters('publicIPName')]", "location": "[parameters('location')]", "properties": { "publicIPAllocationMethod": "Dynamic", "idleTimeoutInMinutes": 10, "publicIPAddressVersion": "IPv4", "dnsSettings": { "domainNameLabel": "[variables('dnsName')]" } }, "sku": { "name": "Basic" } } ]
Ha új IP-címet hoz létre, adja hozzá a következőt a
dependsOn
szakaszhoz, hogy a platform a felhőszolgáltatás létrehozása előtt hozza létre az IP-címet."dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPName'))]" ]
Hozzon létre egy cloud service (kiterjesztett támogatás) objektumot, és adjon hozzá megfelelő
dependsOn
hivatkozásokat, ha virtuális hálózatokat vagy nyilvános IP-címet helyez üzembe a sablonon belül.{ "apiVersion": "2021-03-01", "type": "Microsoft.Compute/cloudServices", "name": "[variables('cloudServiceName')]", "location": "[parameters('location')]", "tags": { "DeploymentLabel": "[parameters('deploymentLabel')]", "DeployFromVisualStudio": "true" }, "dependsOn": [ "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]", "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPName'))]" ], "properties": { "packageUrl": "[parameters('packageSasUri')]", "configurationUrl": "[parameters('configurationSasUri')]", "upgradeMode": "[parameters('upgradeMode')]" } }
Hozzon létre egy hálózatiprofil-objektumot a felhőszolgáltatáshoz, és társítsa a nyilvános IP-címet a terheléselosztó előtéréhez. A platform automatikusan létrehoz egy terheléselosztót.
"networkProfile": { "loadBalancerConfigurations": [ { "id": "[concat(variables('resourcePrefix'), 'Microsoft.Network/loadBalancers/', variables('lbName'))]", "name": "[variables('lbName')]", "properties": { "frontendIPConfigurations": [ { "name": "[variables('lbFEName')]", "properties": { "publicIPAddress": { "id": "[concat(variables('resourcePrefix'), 'Microsoft.Network/publicIPAddresses/', parameters('publicIPName'))]" } } } ] } } ] }
Adja hozzá a key vault-referenciát az
OsProfile
ARM-sablon szakaszához. Key Vault a Cloud Services (kiterjesztett támogatás) társított tanúsítványok tárolására szolgál. Adja hozzá a tanúsítványokat a Key Vault, majd hivatkozzon a tanúsítvány ujjlenyomatára a Service Configuration (.cscfg) fájlban. Emellett engedélyeznie kell Key Vault "Hozzáférési szabályzatokat" az "Azure Virtual Machines üzembe helyezéshez" (a portálon), hogy Cloud Services (kiterjesztett támogatású) erőforrás le tudja kérni a titkos kódként tárolt tanúsítványokat Key Vault. A kulcstartónak 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 Cloud Services (kiterjesztett támogatás) használatával."osProfile": { "secrets": [ { "sourceVault": { "id": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/vaults/{keyvault-name}" }, "vaultCertificates": [ { "certificateUrl": "https://{keyvault-name}.vault.azure.net:443/secrets/ContosoCertificate/{secret-id}" } ] } ] }
Megjegyzés
A SourceVault a kulcstartó ARM-erőforrás-azonosítója. Ezeket az információkat a kulcstartó tulajdonságok szakaszában található erőforrás-azonosító megkeresésével találja meg.
- A certificateUrl a Titkos azonosító címkével ellátott kulcstartóban található tanúsítványra lépve található.
- A certificateUrl formátumnak https://{keyvault-endpoin}/secrets/{secretname}/{secret-id} formátumúnak kell lennie.
Hozzon létre egy szerepkörprofilt. Győződjön meg arról, hogy az egyes szerepkörökben és méretekben lévő szerepkörök, szerepkörnevek, példányok száma megegyezik az ARM-sablon Szolgáltatáskonfiguráció (.cscfg), Szolgáltatásdefiníció (.csdef) és szerepkörprofil szakaszában.
"roleProfile": { "roles": { "value": [ { "name": "WebRole1", "sku": { "name": "Standard_D1_v2", "capacity": "1" } }, { "name": "WorkerRole1", "sku": { "name": "Standard_D1_v2", "capacity": "1" } } ] } }
(Nem kötelező) Bővítményprofil létrehozása bővítmények felhőszolgáltatáshoz való hozzáadásához. Ebben a példában hozzáadjuk a távoli asztalt és a Windows Azure diagnosztikai bővítményt.
Megjegyzés
A távoli asztal jelszavának 8–123 karakter hosszúságúnak kell lennie, és legalább 3 jelszó-összetettségi követelménynek kell megfelelnie a következőkből: 1) Nagybetűt tartalmaz 2) Kisbetűt tartalmaz 3) Numerikus számjegyet tartalmaz 4) Speciális karaktert tartalmaz 5) A vezérlőkarakterek nem használhatók
"extensionProfile": { "extensions": [ { "name": "RDPExtension", "properties": { "autoUpgradeMinorVersion": true, "publisher": "Microsoft.Windows.Azure.Extensions", "type": "RDP", "typeHandlerVersion": "1.2.1", "settings": "<PublicConfig>\r\n <UserName>[Insert Username]</UserName>\r\n <Expiration>1/21/2022 12:00:00 AM</Expiration>\r\n</PublicConfig>", "protectedSettings": "<PrivateConfig>\r\n <Password>[Insert Password]</Password>\r\n</PrivateConfig>" } }, { "name": "Microsoft.Insights.VMDiagnosticsSettings_WebRole1", "properties": { "autoUpgradeMinorVersion": true, "publisher": "Microsoft.Azure.Diagnostics", "type": "PaaSDiagnostics", "typeHandlerVersion": "1.5", "settings": "[parameters('wadPublicConfig_WebRole1')]", "protectedSettings": "[parameters('wadPrivateConfig_WebRole1')]", "rolesAppliedTo": [ "WebRole1" ] } } ] }
Tekintse át a teljes sablont.
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "cloudServiceName": { "type": "string", "metadata": { "description": "Name of the cloud service" } }, "location": { "type": "string", "metadata": { "description": "Location of the cloud service" } }, "deploymentLabel": { "type": "string", "metadata": { "description": "Label of the deployment" } }, "packageSasUri": { "type": "securestring", "metadata": { "description": "SAS Uri of the CSPKG file to deploy" } }, "configurationSasUri": { "type": "securestring", "metadata": { "description": "SAS Uri of the service configuration (.cscfg)" } }, "roles": { "type": "array", "metadata": { "description": "Roles created in the cloud service application" } }, "wadPublicConfig_WebRole1": { "type": "string", "metadata": { "description": "Public configuration of Windows Azure Diagnostics extension" } }, "wadPrivateConfig_WebRole1": { "type": "securestring", "metadata": { "description": "Private configuration of Windows Azure Diagnostics extension" } }, "vnetName": { "type": "string", "defaultValue": "[concat(parameters('cloudServiceName'), 'VNet')]", "metadata": { "description": "Name of vitual network" } }, "publicIPName": { "type": "string", "defaultValue": "contosocsIP", "metadata": { "description": "Name of public IP address" } }, "upgradeMode": { "type": "string", "defaultValue": "Auto", "metadata": { "UpgradeMode": "UpgradeMode of the CloudService" } } }, "variables": { "cloudServiceName": "[parameters('cloudServiceName')]", "subscriptionID": "[subscription().subscriptionId]", "dnsName": "[variables('cloudServiceName')]", "lbName": "[concat(variables('cloudServiceName'), 'LB')]", "lbFEName": "[concat(variables('cloudServiceName'), 'LBFE')]", "resourcePrefix": "[concat('/subscriptions/', variables('subscriptionID'), '/resourceGroups/', resourceGroup().name, '/providers/')]" }, "resources": [ { "apiVersion": "2019-08-01", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('vnetName')]", "location": "[parameters('location')]", "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "subnets": [ { "name": "WebTier", "properties": { "addressPrefix": "10.0.0.0/24" } } ] } }, { "apiVersion": "2019-08-01", "type": "Microsoft.Network/publicIPAddresses", "name": "[parameters('publicIPName')]", "location": "[parameters('location')]", "properties": { "publicIPAllocationMethod": "Dynamic", "idleTimeoutInMinutes": 10, "publicIPAddressVersion": "IPv4", "dnsSettings": { "domainNameLabel": "[variables('dnsName')]" } }, "sku": { "name": "Basic" } }, { "apiVersion": "2021-03-01", "type": "Microsoft.Compute/cloudServices", "name": "[variables('cloudServiceName')]", "location": "[parameters('location')]", "tags": { "DeploymentLabel": "[parameters('deploymentLabel')]", "DeployFromVisualStudio": "true" }, "dependsOn": [ "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]", "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPName'))]" ], "properties": { "packageUrl": "[parameters('packageSasUri')]", "configurationUrl": "[parameters('configurationSasUri')]", "upgradeMode": "[parameters('upgradeMode')]", "roleProfile": { "roles": [ { "name": "WebRole1", "sku": { "name": "Standard_D1_v2", "capacity": "1" } }, { "name": "WorkerRole1", "sku": { "name": "Standard_D1_v2", "capacity": "1" } } ] }, "networkProfile": { "loadBalancerConfigurations": [ { "id": "[concat(variables('resourcePrefix'), 'Microsoft.Network/loadBalancers/', variables('lbName'))]", "name": "[variables('lbName')]", "properties": { "frontendIPConfigurations": [ { "name": "[variables('lbFEName')]", "properties": { "publicIPAddress": { "id": "[concat(variables('resourcePrefix'), 'Microsoft.Network/publicIPAddresses/', parameters('publicIPName'))]" } } } ] } } ] }, "osProfile": { "secrets": [ { "sourceVault": { "id": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/vaults/{keyvault-name}" }, "vaultCertificates": [ { "certificateUrl": "https://{keyvault-name}.vault.azure.net:443/secrets/ContosoCertificate/{secret-id}" } ] } ] }, "extensionProfile": { "extensions": [ { "name": "RDPExtension", "properties": { "autoUpgradeMinorVersion": true, "publisher": "Microsoft.Windows.Azure.Extensions", "type": "RDP", "typeHandlerVersion": "1.2.1", "settings": "<PublicConfig>\r\n <UserName>[Insert Username]</UserName>\r\n <Expiration>1/21/2022 12:00:00 AM</Expiration>\r\n</PublicConfig>", "protectedSettings": "<PrivateConfig>\r\n <Password>[Insert Password]</Password>\r\n</PrivateConfig>" } }, { "name": "Microsoft.Insights.VMDiagnosticsSettings_WebRole1", "properties": { "autoUpgradeMinorVersion": true, "publisher": "Microsoft.Azure.Diagnostics", "type": "PaaSDiagnostics", "typeHandlerVersion": "1.5", "settings": "[parameters('wadPublicConfig_WebRole1')]", "protectedSettings": "[parameters('wadPrivateConfig_WebRole1')]", "rolesAppliedTo": [ "WebRole1" ] } } ] } } } ] }
Telepítse a sablont és a paraméterfájlt (paramétereket definiáljon a sablonfájlban) a Cloud Service (kiterjesztett támogatás) üzembe helyezésének létrehozásához. Tekintse meg ezeket a mintasablonokat , ha szükséges.
New-AzResourceGroupDeployment -ResourceGroupName "ContosOrg" -TemplateFile "file path to your template file" -TemplateParameterFile "file path to your parameter file"
Következő lépések
- Tekintse át a Cloud Services (kiterjesztett támogatás) kapcsolatos gyakori kérdéseket.
- Felhőszolgáltatás (kiterjesztett támogatás) üzembe helyezése a Azure Portal, a PowerShell, a sablon vagy a Visual Studio használatával.
- Látogasson el a Cloud Services (kiterjesztett támogatású) mintaadattárba