Bagikan melalui


Apa itu templat ARM?

Dengan perpindahan ke cloud, banyak tim mengadopsi metode pengembangan yang tangkas. Tim-tim ini melakukan iterasi dengan cepat. Mereka perlu berulang kali menyebarkan solusi mereka ke cloud, dan menegtahui infrastruktur mereka dalam keadaan yang dapat diandalkan. Karena infrastruktur menjadi bagian dari proses iteratif, pembagian antara operasi dan pengembangan menghilang. Tim perlu mengelola infrastruktur dan kode aplikasi melalui proses terpadu.

Untuk memenuhi tantangan ini, otomatiskan penyebaran dan gunakan praktik infrastruktur sebagai kode. Dalam kode, Anda mendefinisikan infrastruktur yang perlu diterapkan. Kode infrastruktur adalah bagian dari proyek Anda. Sama seperti kode aplikasi, simpan kode infrastruktur di repositori sumber dan versinya. Setiap orang di tim Anda dapat menjalankan kode dan menyebarkan lingkungan yang sama.

Untuk menerapkan infrastruktur sebagai kode untuk solusi Azure Anda, gunakan templat Azure Resource Manager (templat ARM). Templat adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Templat tersebut menggunakan sintaksis deklaratif, yang memungkinkan Anda menyatakan apa yang ingin Anda sebarkan tanpa harus menulis urutan perintah pemrograman untuk membuatnya. Dalam templat, Anda menentukan sumber daya untuk digunakan dan properti untuk sumber daya tersebut. Anda juga dapat menentukan grup sumber daya tempat sumber daya tersebut disebarkan.

Tip

Kami memperkenalkan bahasa baru bernama Bicep yang menawarkan kemampuan yang sama dengan templat ARM tetapi dengan sintaks yang lebih mudah digunakan. Setiap file Bicep secara otomatis dikonversi menjadi templat ARM selama penyebaran. Jika Anda mempertimbangkan infrastruktur sebagai opsi kode, kami rekomendasikan untuk memeriksa Bicep. Untuk informasi selengkapnya, lihat Apa itu Bicep?.

Mengapa memilih templat ARM?

Jika Anda mencoba memutuskan antara menggunakan templat ARM dan salah satu infrastruktur lainnya sebagai layanan kode, pertimbangkan keuntungan menggunakan templat berikut ini:

  • Sintaks deklaratif: Templat ARM memungkinkan Anda untuk membuat dan menerapkan seluruh infrastruktur Azure secara deklaratif. Misalnya, Anda dapat menyebarkan tidak hanya komputer virtual, tetapi juga infrastruktur jaringan, sistem penyimpanan, dan sumber daya lain yang Anda butuhkan.

  • Hasil yang dapat diulang: Berulang kali menyebarkan infrastruktur Anda sepanjang siklus hidup pengembangan dan memiliki keyakinan sumber daya Anda digunakan secara konsisten. Template idempoten, yang berarti Anda dapat menggunakan templat yang sama berkali-kali dan mendapatkan jenis sumber daya yang sama dalam keadaan yang sama. Anda dapat mengembangkan satu template yang mewakili keadaan yang diinginkan, daripada mengembangkan banyak templat terpisah untuk mewakili pembaruan. Misalnya, file berikut membuat akun penyimpanan. Jika Anda menyebarkan templat ini dan akun penyimpanan dengan properti yang ditentukan sudah ada, tidak ada perubahan yang dilakukan.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": {
    "mystore": {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-04-01",
      "name": "mystorageaccount",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2"
    }
  }
}
  • Orkestrasi: Anda tidak perlu khawatir tentang kerumitan operasi pemesanan. Resource Manager mengatur penyebaran sumber daya yang saling diperlukan sehingga dibuat dalam urutan yang benar. Jika memungkinkan, Resource Manager menyebarkan sumber daya secara paralel, sehingga penyebaran Anda selesai lebih cepat daripada penyebaran serial. Anda menerapkan templat melalui satu perintah, bukan melalui beberapa perintah penting.

    Diagram yang menunjukkan perbedaan antara penyebaran imperatif dan deklaratif.

  • File modular: Anda dapat memutus template Anda menjadi komponen yang lebih kecil dan dapat digunakan kembali dan menautkannya bersama-sama pada waktu penyebaran. Anda juga dapat menyarangkan satu templat di dalam templat lain.

  • Membuat sumber daya Azure apa pun: Anda dapat segera menggunakan layanan dan fitur Azure baru dalam templat. Segera setelah penyedia sumber daya memperkenalkan sumber daya baru, Anda dapat menyebarkan sumber daya tersebut melalui templat. Anda tidak perlu menunggu alat atau modul diperbarui sebelum menggunakan layanan baru.

  • Ekstensibilitas: Dengan skrip penyebaran, Anda dapat menambahkan skrip PowerShell atau Bash ke templat Anda. Skrip penyebaran memperluas kemampuan Anda untuk menyiapkan sumber daya selama penyebaran. Anda dapat menyertakan skrip dalam templat atau menyimpannya di sumber eksternal dan mereferensikannya dalam templat. Dengan skrip penyebaran, Anda dapat menyelesaikan penyiapan lingkungan end-to-end dalam satu templat ARM.

  • Pengujian: Untuk memastikan templat Anda mengikuti panduan yang direkomendasikan, uji dengan kit alat templat ARM (arm-ttk). Alat pengujian ini adalah skrip PowerShell yang dapat Anda unduh dari GitHub. Peralatan tersebut memudahkan Anda untuk mengembangkan keahlian menggunakan bahasa pemorgraman template.

  • Pratinjau perubahan: Gunakan operasi bagaimana-jika untuk mempratinjau perubahan sebelum menyebarkan templat. Dengan bagaimana-jika, Anda akan melihat sumber daya mana yang akan dibuat, diperbarui, atau dihapus, dan properti sumber daya apa pun yang akan diubah. Operasi bagaimana-jika memeriksa kondisi lingkungan Anda saat ini dan menghilangkan kebutuhan untuk mengelola status.

  • Validasi bawaan: Template Anda hanya digunakan setelah melewati validasi. Resource Manager memeriksa templat sebelum memulai penyebaran untuk memastikan templat berhasil. Penyebaran Anda cenderung tidak berhenti dalam keadaan setengah jadi.

  • Penyebaran terlacak: Di portal Microsoft Azure, Anda dapat meninjau riwayat penyebaran dan mendapatkan informasi tentang penyebaran templat. Anda dapat melihat templat yang digunakan, nilai parameter yang dilewatkan, dan nilai output apa pun. Infrastruktur lain sebagai layanan kode tidak dilacak melalui portal.

    Cuplikan layar portal Azure memperlihatkan riwayat penyebaran.

  • Kebijakan sebagai kode: Azure Policy adalah kebijakan sebagai kerangka kode untuk mengotomatiskan kerangka kerja. Jika Anda menggunakan kebijakan Azure, remediasi kebijakan dilakukan pada sumber daya yang tidak patuh saat disebarkan melalui templat.

  • Cetak Biru Penggunaan: Anda dapat memanfaatkan Cetak biru yang disediakan oleh Microsoft untuk memenuhi standar peraturan dan kepatuhan. Cetak biru ini mencakup templat bawaan untuk berbagai arsitektur.

  • Integrasi CI/CD: Anda dapat mengintegrasikan templat ke dalam alat integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD). Integrasi ini mengotomatiskan alur rilis Anda untuk pembaruan aplikasi dan infrastruktur yang cepat dan andal. Dengan menggunakan tugas templat Azure DevOps dan Resource Manager, Anda dapat menggunakan Azure Pipelines untuk terus membangun dan menerapkan proyek templat ARM. Untuk mempelajari lebih lanjut, proyek VS dengan alur dan Tutorial: Integrasi berkelanjutan templat Azure Resource Manager dengan Azure Pipelines.

  • Kode yang dapat diekspor: Anda bisa mendapatkan templat untuk grup sumber daya yang ada dengan mengekspor status grup sumber daya saat ini atau melihat templat yang digunakan untuk penyebaran tertentu. Menampilkan templat yang diekspor adalah cara yang bermanfaat untuk mempelajari sintaks templat.

  • Alat penyusunan penulisan: Anda dapat menulis template dengan Visual Studio Code dan ekstensi alat templat. Anda mendapatkan IntelliSense, penyorotan sintaksis, bantuan sebaris, dan banyak fungsi bahasa lainnya. Selain Visual Studio Code, Anda juga dapat menggunakan Visual Studio.

File templat

Dalam templat Anda, Anda dapat menulis ekspresi templat yang memperluas kemampuan JSON. Ekspresi ini menggunakan fungsi yang disediakan Resource Manager.

Templat tersebut memiliki bagian berikut:

  • Parameter - Berikan nilai selama penyebaran yang Anda sesuaikan untuk lingkungan yang berbeda saat menggunakan templat yang sama.

  • Variabel - Tentukan nilai yang Anda gunakan kembali di templat Anda. Anda dapat membangunnya dari nilai parameter.

  • Fungsi yang ditentukan pengguna - Membuat fungsi yang dikustomisasi yang menyederhanakan templat Anda.

  • Sumber Daya - Tentukan sumber daya yang akan digunakan.

  • Keluaran - Mengembalikan nilai dari sumber daya yang diterapkan.

Proses penyebaran templat

Saat Anda menerapkan template, Resource Manager mengonversi template menjadi operasi REST API. Misalnya, saat Resource Manager menerima templat dengan definisi sumber daya berikut:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2022-09-01",
    "name": "mystorageaccount",
    "location": "centralus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2"
  },
]

Ini mengonversi definisi ke operasi REST API berikut, yang dikirimnya ke penyedia sumber daya Microsoft.Storage:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2022-09-01
REQUEST BODY
{
  "location": "centralus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "StorageV2",
  "properties": {}
}

Perhatikan bahwa apiVersion yang Anda setel di template untuk sumber daya digunakan sebagai versi API untuk operasi REST. Anda dapat berulang kali menyebarkan templat dan memiliki keyakinan bahwa templat terus berfungsi. Dengan menggunakan versi API yang sama, Anda tidak perlu khawatir memutuskan perubahan yang mungkin diperkenalkan di versi yang lebih baru.

Untuk menggunakan templat, gunakan salah satu opsi berikut ini:

Desain templat

Tentukan templat dan grup sumber daya berdasarkan cara Anda ingin mengelola solusi Anda. Misalnya, Anda dapat menyebarkan aplikasi tiga tingkat melalui satu templat ke satu grup sumber daya.

Diagram yang memperlihatkan penyebaran aplikasi tiga tingkat menggunakan satu templat.

Anda tidak perlu menentukan seluruh infrastruktur Anda dalam satu templat. Seringkali, masuk akal untuk membagi persyaratan penyebaran Anda menjadi seperangkat templat yang ditargetkan dan bertujuan khusus. Anda dapat dengan mudah menggunakan kembali template ini untuk solusi yang berbeda. Untuk menyebarkan solusi tertentu, buat templat utama yang menautkan semua templat yang diperlukan. Gambar berikut menunjukkan cara menyebarkan solusi tiga tingkat melalui templat induk yang menyertakan tiga templat berlapis.

Diagram yang memperlihatkan penyebaran aplikasi tiga tingkat menggunakan templat berlapis.

Jika Anda membayangkan tingkatan Anda memiliki siklus hidup terpisah, Anda dapat menerapkan tiga tingkatan Anda untuk memisahkan grup sumber daya. Sumber daya masih dapat dihubungkan dengan sumber daya dalam kelompok sumber daya lainnya.

Diagram yang memperlihatkan penyebaran aplikasi tiga tingkat dengan grup sumber daya terpisah.

Untuk informasi tentang templat berlapis, lihat Menggunakan templat tertaut dengan Azure Resource Manager.

Berbagi templat

Setelah membuat templat, Anda mungkin ingin membagikannya dengan pengguna lain di organisasi Anda. Spesifikasi templat memungkinkan Anda untuk menyimpan templat sebagai jenis sumber daya. Gunakan kontrol akses berbasis peran untuk mengelola akses ke spesifikasi templat. Pengguna dengan akses baca ke spesifikasi templat dapat menyebarkannya, tetapi tidak mengubah templat.

Pendekatan ini berarti Anda dapat berbagi templat dengan aman yang memenuhi standar organisasi Anda.

Dapatkan dukungan

Berikut adalah langkah-langkah untuk membuka tiket dukungan untuk masalah terkait templat Azure Resource Manager (ARM):

  1. Buka portal Microsoft Azure.

  2. Pilih ikon Dukungan + Pemecahan Masalah dari sudut kanan atas.

  3. Di Jelaskan masalah secara singkat, masukkan templat ARM, lalu pilih Buka.

  4. Di Layanan mana Anda mengalami masalah?, pilih Portal di bawah Pemantauan & Manajemen, lalu pilih Berikutnya.

  5. Pilih langganan, lalu pilih Berikutnya.

  6. Pilih Masalah dengan templat ARM, lalu pilih Berikutnya.

    Cuplikan layar meminta dukungan templat ARM.

Langkah berikutnya