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.
Artikel ini menjelaskan cara menggunakan REST API Azure Resource Manager dengan templat Azure Resource Manager (templat ARM) untuk menyebarkan sumber daya Anda ke Azure.
Anda dapat menyertakan templat Anda dalam isi permintaan atau menautkan ke file. Saat menggunakan file, file tersebut dapat berupa file lokal atau file eksternal yang tersedia melalui URI. Saat templat Anda berada di akun penyimpanan, Anda dapat membatasi akses ke templat dan memberikan token tanda tangan akses bersama (SAS) selama penyebaran.
Prasyarat
Memerlukan izin
Untuk menyebarkan file Bicep atau templat Azure Resource Manager (ARM), Anda memerlukan akses tulis pada sumber daya yang Anda sebarkan dan akses ke semua operasi pada Microsoft.Resources/deployments jenis sumber daya. Misalnya, untuk menyebarkan mesin virtual, Anda memerlukan izin Microsoft.Compute/virtualMachines/write dan Microsoft.Resources/deployments/*. Operasi andaikan memiliki persyaratan izin yang sama.
Azure CLI versi 2.76.0 atau yang lebih baru dan Azure PowerShell versi 13.4.0 atau yang lebih baru memperkenalkan sakelar ValidationLevel untuk menentukan bagaimana ARM memvalidasi templat Bicep secara menyeluruh selama proses ini. Untuk informasi selengkapnya, lihat Perintah bagaimana-jika
Untuk daftar peran dan izin, lihat Peran bawaan Azure.
Cakupan penyebaran
Anda dapat menargetkan penyebaran ke grup sumber daya, langganan Azure, grup manajemen, atau penyewa. Tergantung pada lingkup penyebaran, Anda menggunakan perintah yang berbeda.
Untuk menyebarkan ke grup sumber daya, gunakan Penyebaran - Buat. Permintaan dikirim ke:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01Untuk menyebarkan ke langganan, gunakan Penyebaran - Buat Di Cakupan Langganan. Permintaan dikirim ke:
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01Untuk informasi selengkapnya tentang penyebaran tingkat langganan, lihat Membuat grup sumber daya dan sumber daya di tingkat langganan.
Untuk menyebarkan ke grup manajemen, gunakan Penyebaran - Buat Cakupan Grup Manajemen. Permintaan dikirim ke:
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{groupId}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01Untuk informasi selengkapnya tentang penyebaran tingkat grup manajemen, lihat Membuat sumber daya di tingkat grup manajemen.
Untuk menyebarkan ke penyewa, gunakan Penyebaran - Buat Atau Perbarui Pada Cakupan Penyewa. Permintaan dikirim ke:
PUT https://management.azure.com/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01Untuk informasi selengkapnya tentang penyebaran tingkat penyewa, lihat Membuat sumber daya di tingkat penyewa.
Contoh dalam artikel ini menggunakan penyebaran grup sumber daya.
Menyebarkan dengan REST API
Atur parameter dan header umum, termasuk token autentikasi.
Jika Anda menerapkan ke grup sumber daya yang tidak ada, buatlah grup sumber daya tersebut. Berikan ID langganan Anda, nama grup sumber daya baru, dan lokasi yang Anda butuhkan untuk solusi Anda. Untuk informasi selengkapnya, lihat Membuat grup sumber daya.
PUT https://management.azure.com/subscriptions/<YourSubscriptionId>/resourcegroups/<YourResourceGroupName>?api-version=2020-06-01Dengan isi permintaan seperti:
{ "location": "West US", "tags": { "tagname1": "tagvalue1" } }Sebelum menyebarkan templat, Anda dapat mempratinjau perubahan yang akan dilakukan templat ke lingkungan Anda. Gunakan operasi bagaimana-jika untuk memverifikasi bahwa templat membuat perubahan yang Anda harapkan. What-if juga memvalidasi template untuk kesalahan.
Untuk menyebarkan templat, berikan ID langganan Anda, nama grup sumber daya, nama penyebaran dalam URI permintaan.
PUT https://management.azure.com/subscriptions/<YourSubscriptionId>/resourcegroups/<YourResourceGroupName>/providers/Microsoft.Resources/deployments/<YourDeploymentName>?api-version=2020-10-01Di isi permintaan, berikan tautan ke file templat dan parameter Anda. Untuk informasi selengkapnya tentang file parameter, lihat Membuat file parameter Resource Manager.
Perhatikan bahwa
modediatur ke Bertahap. Untuk menjalankan penyebaran lengkap, aturmodeke Selesai. Berhati-hatilah saat menggunakan mode lengkap karena Anda secara tidak sengaja dapat menghapus sumber daya yang tidak ada di templat Anda.{ "properties": { "templateLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json", "contentVersion": "1.0.0.0" }, "parametersLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json", "contentVersion": "1.0.0.0" }, "mode": "Incremental" } }Jika Anda ingin mencatat konten respons, meminta konten, atau keduanya, sertakan
debugSettingdalam permintaan.{ "properties": { "templateLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json", "contentVersion": "1.0.0.0" }, "parametersLink": { "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json", "contentVersion": "1.0.0.0" }, "mode": "Incremental", "debugSetting": { "detailLevel": "requestContent, responseContent" } } }Anda dapat menyiapkan akun penyimpanan untuk menggunakan token tanda tangan akses bersama (SAS). Untuk informasi selengkapnya, lihat Mendelegasikan akses dengan tanda tangan akses bersama.
Jika Anda perlu memberikan nilai sensitif untuk parameter (seperti kata sandi), tambahkan nilai tersebut ke brankas kunci. Ambil brankas kunci selama penyebaran seperti yang ditunjukkan pada contoh sebelumnya. Untuk informasi selengkapnya, lihat Menggunakan Azure Key Vault untuk meneruskan nilai parameter aman selama penyebaran.
Alih-alih menautkan ke file untuk templat dan parameter, Anda dapat menyertakannya dalam isi permintaan. Contoh berikut menunjukkan isi permintaan dengan templat dan parameter sebaris:
{ "properties": { "mode": "Incremental", "template": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "metadata": { "description": "Storage Account type" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Location for all resources." } } }, "variables": { "storageAccountName": "[format('{0}standardsa', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2025-06-01", "name": "[variables('storageAccountName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2", "properties": {} } ], "outputs": { "storageAccountName": { "type": "string", "value": "[variables('storageAccountName')]" } } }, "parameters": { "location": { "value": "eastus2" } } } }Untuk mendapatkan status penyebaran templat, gunakan Penyebaran - Dapatkan.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}?api-version=2020-10-01
Menyebarkan dengan ARMClient
ARMClient adalah alat baris perintah sederhana untuk memanggil API Azure Resource Manager. Untuk menginstal alat, lihat ARMClient.
Untuk mencantumkan langganan Anda:
armclient GET /subscriptions?api-version=2021-04-01
Untuk mencantumkan grup sumber daya Anda:
armclient GET /subscriptions/<subscription-id>/resourceGroups?api-version=2021-04-01
Ganti <id> langganan dengan ID langganan Azure Anda.
Untuk membuat grup sumber daya di wilayah US Tengah :
armclient PUT /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>?api-version=2021-04-01 "{location: 'central us', properties: {}}"
Atau, Anda dapat memasukkan isinya ke dalam file JSON yang disebut CreateRg.json:
{
"location": "Central US",
"properties": { }
}
armclient PUT /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>?api-version=2021-04-01 '@CreateRg.json'
Untuk informasi selengkapnya, lihat ARMClient: alat baris perintah untuk Azure API.
Nama penggelaran
Anda dapat memberi nama penggelaran Anda misalnya ExampleDeployment.
Setiap kali Anda menjalankan sebuah penyebaran, sebuah entri dengan nama penyebaran ditambahkan ke dalam riwayat penyebaran grup sumber daya. Jika Anda menjalankan penggelaran lainnya dan memberinya nama yang sama, entri sebelumnya akan digantikan oleh penggelaran saat ini. Jika Anda ingin mempertahankan entri unik dalam riwayat penyebaran, berikan nama yang unik pada setiap penyebaran.
Untuk membuat nama yang unik, Anda dapat menetapkan angka acak. Atau, tambahkan nilai tanggal.
Jika Anda menjalankan penyebaran bersamaan ke grup sumber daya yang sama dengan nama penyebaran yang sama, hanya penyebaran terakhir yang diselesaikan. Setiap penyebaran dengan nama yang sama yang belum selesai akan digantikan oleh penyebaran yang terakhir. Misalnya, jika Anda menjalankan penyebaran bernama newStorage yang menyebarkan akun penyimpanan bernama storage1, dan pada saat yang sama menjalankan penyebaran lain bernama newStorage yang menyebarkan akun penyimpanan bernama storage2, Anda hanya menyebarkan satu akun penyimpanan. Akun penyimpanan yang dihasilkan diberi nama storage2.
Namun, jika Anda menjalankan penyebaran bernama newStorage yang menyebarkan akun penyimpanan bernama storage1, dan segera setelah selesai Anda menjalankan penyebaran lain bernama newStorage yang menyebarkan akun penyimpanan bernama storage2, Anda memiliki dua akun penyimpanan. Satu bernama storage1, dan yang lain bernama storage2. Namun, Anda hanya memiliki satu entri dalam catatan penyebaran.
Saat menentukan nama unik untuk setiap penyebaran, Anda dapat menjalankannya secara bersamaan tanpa konflik. Jika Anda menjalankan penyebaran bernama newStorage1 yang menyebarkan akun penyimpanan bernama storage1, dan pada saat yang sama menjalankan penyebaran lain bernama newStorage2 yang menyebarkan akun penyimpanan bernama storage2, Anda memiliki dua akun penyimpanan dan dua entri di riwayat penyebaran.
Untuk menghindari konflik dengan penyebaran bersamaan dan memastikan entri unik dalam riwayat penyebaran, berikan nama yang unik pada setiap penyebaran.
Langkah selanjutnya
- Untuk mengembalikan ke penyebaran yang sukses saat Anda mendapatkan kesalahan, lihat Pemulihan saat terjadi kesalahan ke penyebaran yang sukses.
- Untuk menentukan cara menangani sumber daya yang ada di grup sumber daya tetapi tidak ditentukan dalam templat, lihat Mode penyebaran Azure Resource Manager.
- Untuk mempelajari tentang menangani operasi REST asinkron, lihat Melacak operasi Azure asinkron.
- Untuk mempelajari selengkapnya tentang templat, lihat Memahami struktur dan sintaks templat ARM.