Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Mulai 31 Maret 2025, Cloud Services (dukungan diperpanjang) tidak digunakan lagi dan akan sepenuhnya dihentikan pada 31 Maret 2027. Pelajari selengkapnya tentang penghentian fitur ini dan cara bermigrasi.
Artikel ini memperlihatkan kepada Anda cara menggunakan templat Azure Resource Manager (templat ARM) untuk membuat penyebaran Azure Cloud Services (dukungan yang diperluas).
Prasyarat
Selesaikan langkah-langkah berikut sebagai prasyarat untuk membuat penyebaran Anda dengan menggunakan templat ARM.
Tinjau prasyarat penyebaran untuk Cloud Services (dukungan yang diperluas) dan buat sumber daya yang diperlukan.
Buat grup sumber daya baru dengan menggunakan portal Azure atau Azure PowerShell. Langkah ini bersifat opsional jika Anda menggunakan grup sumber daya yang ada.
Buat akun penyimpanan baru dengan menggunakan portal Azure atau Azure PowerShell. Langkah ini bersifat opsional jika Anda menggunakan akun penyimpanan yang sudah ada.
Unggah file dan konfigurasi paket (.cspkg atau .zip) (.cscfg) ke akun penyimpanan dengan menggunakan portal Azure atau Azure PowerShell. Simpan URI tanda tangan akses bersama (SAS) untuk kedua file untuk ditambahkan ke templat ARM di langkah selanjutnya.
(Opsional) Buat brankas kunci dan unggah sertifikat.
- Anda dapat melampirkan sertifikat ke penerapan Anda untuk komunikasi aman ke dan dari layanan. Jika Anda menggunakan sertifikat, jejak jempol sertifikat harus ditentukan dalam file konfigurasi (.cscfg) Anda dan diunggah ke penyimpanan kunci. Anda dapat membuat brankas kunci dengan menggunakan portal Azure atau Azure PowerShell.
- Kunci brankas terkait harus berada di wilayah dan langganan yang sama dengan penerapan Layanan Cloud (dukungan diperpanjang) Anda.
- Brankas kunci terkait harus memiliki izin yang relevan sehingga sumber daya Cloud Services (dukungan yang diperluas) dapat mengambil sertifikat dari brankas kunci. Untuk informasi selengkapnya, lihat Menggunakan sertifikat dengan Cloud Services (dukungan yang diperluas).
- The key vault must be referenced in the
osProfilesection of the ARM template as shown in a later step.
Menyebarkan Layanan Cloud (dukungan yang diperluas)
Untuk menyebarkan Cloud Services (dukungan yang diperluas) dengan menggunakan templat:
Catatan
Cara yang lebih mudah dan lebih cepat untuk menghasilkan templat ARM dan file parameter Anda adalah dengan menggunakan portal Azure. Anda dapat mengunduh templat ARM yang dihasilkan di portal untuk membuat Cloud Services (dukungan yang diperluas) melalui Azure PowerShell.
Buat jaringan virtual. Nama jaringan virtual harus cocok dengan referensi jaringan virtual dalam file konfigurasi (.cscfg). Jika Anda menggunakan jaringan virtual yang ada, hilangkan bagian ini dari templat ARM.
"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" } } ] } } ]Jika Anda membuat jaringan virtual baru, tambahkan baris berikut ke
dependsOnbagian untuk memastikan bahwa platform membuat jaringan virtual sebelum membuat instans Cloud Services (dukungan yang diperluas):"dependsOn": [ "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]" ]Buat alamat IP publik dan (secara opsional) atur properti label DNS alamat IP publik. If you use a static IP address, you must reference it as a reserved IP address in the configuration (.cscfg) file. Jika Anda menggunakan alamat IP yang ada, lewati langkah ini dan tambahkan informasi alamat IP langsung di pengaturan konfigurasi load balancer di templat ARM Anda.
"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" } } ]Jika Anda membuat alamat IP baru, tambahkan baris berikut ke
dependsOnbagian untuk memastikan bahwa platform membuat alamat IP sebelum membuat instans Cloud Services (dukungan yang diperluas):"dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPName'))]" ]Buat objek Cloud Services (dukungan yang diperluas). Tambahkan referensi yang relevan
dependsOnjika Anda menyebarkan jaringan virtual atau alamat IP publik di templat Anda.{ "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')]" } }Create a network profile object for your deployment, and associate the public IP address with the front end of the load balancer. Platform Azure secara otomatis membuat load balancer.
"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'))]" } } } ] } } ] }Tambahkan referensi key vault Anda di bagian
osProfiledari template ARM. Brankas kunci menyimpan sertifikat yang terkait dengan Cloud Services (dukungan yang diperluas). Tambahkan sertifikat ke brankas kunci, lalu referensikan thumbprint sertifikat dalam file konfigurasi (.cscfg). Selain itu, atur kebijakan akses brankas kunci untuk Azure Virtual Machines untuk penyebaran di portal Azure sehingga sumber daya Cloud Services (dukungan diperluas) dapat mengambil sertifikat yang disimpan sebagai rahasia di brankas kunci. The key vault must be in the same region and subscription as your Cloud Services (extended support) resource and have a unique name. Untuk informasi selengkapnya, lihat Menggunakan sertifikat dengan Cloud Services (dukungan yang diperluas)."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}" } ] } ] }Catatan
sourceVaultdalam template ARM adalah nilai dari ID sumber daya untuk key vault Anda. Anda bisa mendapatkan informasi ini dengan menemukan ID Sumber Daya di bagian Properti di brankas kunci Anda.- Anda bisa mendapatkan nilai untuk
certificateUrldengan masuk ke sertifikat di brankas kunci yang berlabel Pengidentifikasi Rahasia. -
certificateUrlharus dalam bentukhttps://{keyvault-endpoint}/secrets/{secret-name}/{secret-id}.
- Anda bisa mendapatkan nilai untuk
Buat profil peran. Pastikan bahwa jumlah peran, jumlah instans dalam setiap peran, nama peran, dan ukuran peran sama di seluruh file konfigurasi (.cscfg), file definisi (.csdef), dan
roleProfilebagian dalam templat ARM."roleProfile": { "roles": { "value": [ { "name": "WebRole1", "sku": { "name": "Standard_D1_v2", "capacity": "1" } }, { "name": "WorkerRole1", "sku": { "name": "Standard_D1_v2", "capacity": "1" } } ] } }(Opsi) Buat profil ekstensi untuk menambahkan ekstensi pada penerapan Layanan Cloud Anda (dukungan diperpanjang). Contoh berikut menambahkan ekstensi Protokol Desktop Jauh (RDP) dan ekstensi Azure Diagnostics.
Catatan
Kata sandi untuk RDP harus dari 8 hingga 123 karakter dan harus memenuhi setidaknya tiga persyaratan kompleksitas kata sandi berikut:
Mengandung karakter huruf besar.
Berisi karakter huruf kecil.
Berisi angka numerik.
Berisi karakter khusus.
Tidak boleh memuat karakter kontrol."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" ] } } ] }Tinjau templat lengkap:
{ "$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 package (.cspkg) file to deploy" } }, "configurationSasUri": { "type": "securestring", "metadata": { "description": "SAS URI of the configuration (.cscfg) file" } }, "roles": { "type": "array", "metadata": { "description": "Roles created in the cloud service application" } }, "wadPublicConfig_WebRole1": { "type": "string", "metadata": { "description": "Public configuration of the Azure Diagnostics extension" } }, "wadPrivateConfig_WebRole1": { "type": "securestring", "metadata": { "description": "Private configuration of the Azure Diagnostics extension" } }, "vnetName": { "type": "string", "defaultValue": "[concat(parameters('cloudServiceName'), 'VNet')]", "metadata": { "description": "Name of virtual 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" ] } } ] } } } ] }Untuk membuat penerapan Cloud Services (dukungan diperluas), sebarkan file templat dan file parameter (untuk menentukan parameter dalam file templat). Anda dapat menggunakan templat sampel ini.
New-AzResourceGroupDeployment -ResourceGroupName "ContosOrg" -TemplateFile "file path to your template file" -TemplateParameterFile "file path to your parameter file"
Konten terkait
- Tinjau tanya jawab umum untuk Cloud Services (dukungan yang diperluas).
- Sebarkan Cloud Services (dukungan yang diperluas) dengan menggunakan portal Azure, Azure PowerShell, atau Visual Studio.
- Kunjungi repositori sampel Cloud Services (dukungan yang diperpanjang).