Cara menyimpan dan mengonfigurasikan konfigurasi layanan API Management menggunakan Git
BERLAKU UNTUK: Pengembang | Dasar | Standar | Premium
Setiap instans layanan API Management mempertahankan database konfigurasi yang berisi informasi tentang konfigurasi dan metadata untuk instans layanan. Perubahan dapat dilakukan pada instans layanan dengan mengubah pengaturan di portal Azure, menggunakan alat Azure seperti Azure PowerShell atau Azure CLI, atau membuat panggilan REST API. Selain metode ini, Anda dapat mengelola konfigurasi instans layanan menggunakan Git, mengaktifkan skenario seperti:
- Penerapan versi konfigurasi - Unduh dan simpan berbagai versi konfigurasi layanan Anda
- Perubahan konfigurasi massal - Buat perubahan pada beberapa bagian konfigurasi layanan Anda di repositori lokal Anda dan integrasikan kembali perubahan tersebut ke server dengan satu operasi
- Toolchain dan alur kerja Git yang familier - Gunakan perkakas dan alur kerja Git yang sudah Anda kenal
Diagram berikut menunjukkan ikhtisar berbagai cara untuk mengonfigurasi instans layanan API Management Anda.
Saat Anda membuat perubahan pada layanan menggunakan portal Azure, alat Azure seperti Azure PowerShell atau Azure CLI, atau REST API, Anda mengelola database konfigurasi layanan menggunakan titik akhir https://{name}.management.azure-api.net
, seperti yang ditunjukkan di sisi kanan diagram. Sisi kiri diagram menggambarkan bagaimana Anda dapat mengelola konfigurasi layanan Anda menggunakan Git dan repositori Git untuk layanan Anda yang terletak di https://{name}.scm.azure-api.net
.
Langkah-langkah berikut memberikan gambaran umum dari mengelola instans layanan API Management Anda menggunakan Git.
- Akses konfigurasi Git di layanan Anda
- Simpan database konfigurasi layanan Anda ke repositori Git Anda
- Kloning repo Git ke mesin lokal Anda
- Tarik repo terbaru ke mesin lokal Anda, dan terapkan serta dorong perubahan kembali ke repo Anda
- Sebarkan perubahan dari repo Anda ke database konfigurasi layanan Anda
Artikel ini menjelaskan cara mengaktifkan dan menggunakan Git untuk mengelola konfigurasi layanan Anda dan menyediakan referensi untuk file dan folder di repositori Git.
Penting
Fitur ini dirancang untuk bekerja dengan konfigurasi layanan API Management kecil hingga menengah, seperti yang diekspor berukuran kurang dari 10 MB, atau dengan kurang dari 10.000 entitas. Layanan dengan sejumlah besar entitas (produk, API, operasi, skema, dan sebagainya) mungkin mengalami kegagalan tak terduga saat memproses perintah Git. Jika Anda mengalami kegagalan tersebut, kurangi ukuran konfigurasi layanan Anda dan coba lagi. Hubungi Dukungan Azure jika Anda memerlukan bantuan.
Akses konfigurasi Git di layanan Anda
Navigasikan ke instans API Management Anda di portal Microsoft Azure.
Di menu sebelah kiri, di bawah Penyebaran dan infrastruktur, pilih Repositori.
Menyimpan konfigurasi layanan ke repositori Git
Perhatian
Rahasia apa pun yang tidak didefinisikan sebagai nilai bernama akan disimpan dalam repositori dan akan tetap ada dalam riwayatnya. Nilai bernama menyediakan tempat yang aman untuk mengelola nilai string konstan, termasuk rahasia, di semua konfigurasi dan kebijakan API, sehingga Anda tidak perlu menyimpannya secara langsung dalam pernyataan kebijakan. Untuk informasi selengkapnya,lihat Menggunakan nilai bernama dalam kebijakan Azure API Management.
Sebelum mengkloning repositori, simpan status konfigurasi layanan saat ini ke repositori.
Pada halaman Repositori, pilih Simpan ke repositori.
Buat perubahan yang diinginkan pada layar konfirmasi, seperti nama cabang untuk menyimpan konfigurasi, dan pilih Simpan.
Setelah beberapa saat konfigurasi disimpan, dan status konfigurasi repositori ditampilkan, termasuk tanggal dan waktu perubahan konfigurasi terakhir dan sinkronisasi terakhir antara konfigurasi layanan dan repositori.
Setelah konfigurasi disimpan ke repositori, konfigurasi dapat dikloning.
Untuk informasi tentang menyimpan konfigurasi layanan menggunakan REST API, lihat Konfigurasi penyewa - Simpan.
Mendapatkan informasi masuk akses
Untuk mengkloning repositori, selain URL ke repositori Anda, Anda memerlukan nama pengguna dan kata sandi.
Pada halaman Repositori, pilih Akses informasi masuk di dekat bagian atas halaman.
Perhatikan nama pengguna yang disediakan pada halaman Informasi masuk akses.
Untuk membuat kata sandi, pertama-tama pastikan bahwa Kedaluwarsa diatur ke tanggal dan waktu kedaluwarsa yang diinginkan, lalu pilih Hasilkan.
Penting
Catat kata sandi ini. Setelah Anda meninggalkan halaman ini, kata sandi tidak akan ditampilkan lagi.
Kloning repositori ke mesin lokal Anda
Contoh berikut menggunakan alat Git Bash dari Git untuk Windows tetapi Anda dapat menggunakan alat Git apa pun yang Anda kenal.
Buka alat Git Anda di folder yang diinginkan dan jalankan perintah berikut untuk mengkloning repositori Git ke mesin lokal Anda, menggunakan perintah berikut:
git clone https://{name}.scm.azure-api.net/
Berikan nama pengguna dan kata sandi saat diminta.
Jika Anda menerima kesalahan, coba ubah perintah git clone
Anda untuk menyertakan nama pengguna dan kata sandi, seperti yang diperlihatkan dalam contoh berikut.
git clone https://username:password@{name}.scm.azure-api.net/
Jika ini memberikan kesalahan, coba pengkodean URL bagian kata sandi perintah. Salah satu cara cepat untuk melakukan ini adalah dengan membuka Visual Studio, dan menerbitkan perintah berikut di Jendela Langsung. Untuk membuka Jendela Langsung, buka solusi atau proyek apa pun di Visual Studio (atau buat aplikasi konsol kosong baru), dan pilih Windows, Langsung dari menu Debug.
?System.Net.WebUtility.UrlEncode("password from the Azure portal")
Gunakan kata sandi yang dikodekan bersama dengan nama pengguna dan lokasi repositori Anda untuk membuat perintah git.
git clone https://username:url encoded password@{name}.scm.azure-api.net/
Setelah kloning selesai, ubah direktori ke repositori Anda dengan menjalankan perintah seperti berikut.
cd {name}.scm.azure-api.net/
Jika Anda menyimpan konfigurasi ke cabang selain cabang default (master
), periksa cabang:
git checkout <branch_name>
Setelah repositori dikloning, Anda dapat melihat dan mengerjakannya di sistem file lokal Anda. Untuk informasi selengkapnya, lihat Referensi struktur file dan folder repositori Git lokal.
Memperbarui repositori lokal Anda dengan konfigurasi instans layanan terbaru
Jika Anda membuat perubahan pada instans layanan API Management di portal Azure atau menggunakan alat Azure lainnya, Anda harus menyimpan perubahan ini ke repositori sebelum Anda dapat memperbarui repositori lokal dengan perubahan terbaru.
Untuk menyimpan perubahan menggunakan portal Azure, pilih Simpan ke repositori pada tab Repositori untuk instans API Management Anda.
Kemudian, untuk memperbarui repositori lokal Anda:
Pastikan Anda berada di folder repositori lokal Anda. Jika Anda baru saja menyelesaikan perintah
git clone
, maka Anda harus mengubah direktori ke repositori Anda dengan menjalankan perintah seperti berikut.cd {name}.scm.azure-api.net/
Di folder untuk repositori lokal Anda, jalankan perintah berikut.
git pull
Dorong perubahan dari repositori lokal Anda ke repositori server
Untuk mendorong perubahan dari repositori lokal Anda ke repositori server, Anda harus menerapkan perubahan Anda dan kemudian mendorongnya ke repositori server. Untuk menerapkan perubahan Anda, buka alat perintah Git Anda, beralihlah ke direktori repositori lokal Anda, dan terbitkan perintah berikut.
git add --all
git commit -m "Description of your changes"
Untuk mendorong semua penerapan ke server, jalankan perintah berikut.
git push
Menyebarkan perubahan konfigurasi layanan ke instans layanan API Management
Setelah perubahan lokal Anda diterapkan dan didorong ke repositori server, Anda dapat menyebarkannya ke instans layanan API Management Anda.
Navigasikan ke instans API Management Anda di portal Microsoft Azure.
Di menu sebelah kiri, di bawah Penyebaran dan infrastruktur, pilih Repositori>Sebarkan ke API Management.
Pada halaman Sebarkan konfigurasi repositori, masukkan nama cabang yang berisi perubahan konfigurasi yang diinginkan, dan secara opsional pilih Hapus langganan produk yang dihapus. Pilih Simpan.
Untuk informasi tentang melakukan operasi ini menggunakan REST API, lihat Konfigurasi Penyewa - Sebarkan.
Referensi struktur file dan folder dari repositori Git lokal
File dan folder di repositori Git lokal berisi informasi konfigurasi tentang instans layanan.
Item | Deskripsi |
---|---|
folder root manajemen api | Berisi konfigurasi tingkat atas untuk instans layanan |
folder apiReleas | Berisi konfigurasi untuk rilis API dalam instans layanan |
folder api | Berisi konfigurasi untuk API dalam instans layanan |
Folder apiVersionSets | Berisi konfigurasi untuk set versi API dalam instans layanan |
folder backend | Berisi konfigurasi untuk sumber daya backend dalam instans layanan |
folder grup | Berisi konfigurasi untuk grup dalam instans layanan |
folder kebijakan | Berisi kebijakan dalam instans layanan |
folder portalStyles | Berisi konfigurasi untuk kustomisasi portal pengembang dalam instans layanan |
folder portalTemplate | Berisi konfigurasi untuk templat portal pengembang dalam instans layanan |
folder produk | Berisi konfigurasi untuk produk dalam instans layanan |
folder templat | Berisi konfigurasi untuk templat email dalam instans layanan |
Setiap folder dapat berisi satu atau beberapa file, dan dalam beberapa kasus berisi satu atau beberapa folder, misalnya folder untuk setiap API, produk, atau grup. File dalam setiap folder adalah file khusus untuk jenis entitas yang dijelaskan oleh nama folder.
Jenis file | Tujuan |
---|---|
json | Informasi konfigurasi tentang entitas masing-masing |
html | Deskripsi tentang entitas, sering ditampilkan di portal pengembang |
xml | Pernyataan kebijakan |
css | Lembar gaya untuk kustomisasi portal pengembang |
File-file ini dapat dibuat, dihapus, diedit, dan dikelola pada sistem file lokal Anda, dan perubahan tersebut disebarkan kembali ke instans layanan API Management Anda.
Catatan
Entitas berikut tidak terkandung dalam repositori Git dan tidak dapat dikonfigurasi menggunakan Git.
Folder root manajemen api
Folder root api-management
berisi file configuration.json
yang berisi informasi tingkat atas tentang instans layanan dalam format berikut.
{
"settings": {
"RegistrationEnabled": "True",
"UserRegistrationTerms": null,
"UserRegistrationTermsEnabled": "False",
"UserRegistrationTermsConsentRequired": "False",
"DelegationEnabled": "False",
"DelegationUrl": "",
"DelegatedSubscriptionEnabled": "False",
"DelegationValidationKey": "",
"RequireUserSigninEnabled": "false"
},
"$ref-policy": "api-management/policies/global.xml"
}
Empat pengaturan pertama (RegistrationEnabled
, UserRegistrationTerms
, UserRegistrationTermsEnabled
, dan UserRegistrationTermsConsentRequired
) memetakan ke pengaturan berikut pada tab Identitas di bagian Portal pengembang.
Pengaturan identitas | Memetakan ke |
---|---|
RegistrationEnabled | Adanya penyedia identitas Nama Pengguna dan kata sandi |
UserRegistrationTerms | Kotak teks Ketentuan penggunaan pada pendaftaran pengguna |
UserRegistrationTermsEnabled | Kotak centang Menunjukkan ketentuan penggunaan di halaman pendaftaran |
UserRegistrationTermsConsentRequired | Kotak centang Diperlukan persetujuan |
RequireUserSigninEnabled | Kotak centang Alihkan pengguna anonim ke halaman masuk |
Empat pengaturan pertama (DelegationEnabled
, DelegationUrl
, DelegatedSubscriptionEnabled
, dan DelegationValidationKey
) memetakan ke pengaturan berikut pada tab Delegasi di bagian Portal pengembang.
Pengaturan delegasi | Memetakan ke |
---|---|
DelegationEnabled | Kotak centang Delegasikan masuk & daftar |
DelegationUrl | Kotak teks URL titik akhir delegasi |
DelegatedSubscriptionEnabled | Kotak centangDelegasikan langganan produk |
DelegationValidationKey | Kotak teks Delegasikan Kunci Validasi |
Pengaturan terakhir, $ref-policy
, memetakan ke file pernyataan kebijakan global untuk instans layanan.
folder apiReleas
Folder apiReleases
berisi folder untuk setiap rilis API yang disebarkan ke API produksi, dan berisi item berikut.
apiReleases\<api release Id>\configuration.json
- Konfigurasi untuk rilis, yang berisi informasi tentang tanggal rilis. Ini adalah informasi yang sama yang akan dikembalikan jika Anda memanggil operasi Dapatkan rilis tertentu.
folder api
Folder apis
berisi folder untuk setiap API dalam instans layanan, yang berisi item berikut.
apis\<api name>\configuration.json
- Konfigurasi untuk API, yang berisi informasi tentang URL layanan backend dan operasinya. Ini adalah informasi yang sama yang akan dikembalikan jika Anda memanggil operasi Dapatkan API tertentu.apis\<api name>\api.description.html
- Deskripsi API, sesuai dengan propertidescription
dari entitas API di REST API.apis\<api name>\operations\
- Folder yang berisi<operation name>.description.html
file yang dipetakan ke operasi di API. Setiap file berisi deskripsi operasi tunggal di API, yang memetakan ke propertidescription
dari entitas operasi di REST API.
Folder apiVersionSets
Folder apiVersionSets
berisi folder untuk setiap set versi API yang dibuat untuk API, dan berisi item berikut.
apiVersionSets\<api version set Id>\configuration.json
- Konfigurasi untuk set versi. Ini adalah informasi yang sama yang akan dikembalikan jika Anda memanggil operasi Dapatkan kumpulan versi tertentu.
folder grup
Folder groups
berisi folder untuk setiap grup yang ditentukan dalam instans layanan.
groups\<group name>\configuration.json
- Konfigurasi untuk grup. Ini adalah informasi yang sama yang akan dikembalikan jika Anda memanggil operasi Dapatkan grup tertentu.groups\<group name>\description.html
- Deskripsi grup, sesuai dengan propertidescription
dari entitas grup.
folder kebijakan
Folder policies
berisi pernyataan kebijakan untuk instans layanan Anda.
policies\global.xml
- Kebijakan yang ditentukan pada cakupan global untuk instans layanan Anda.policies\apis\<api name>\
- Jika Anda memiliki kebijakan yang ditentukan pada cakupan API, kebijakan tersebut akan dimuat dalam folder ini.policies\apis\<api name>\<operation name>\
folder - Jika Anda memiliki kebijakan yang ditetapkan pada cakupan operasi, kebijakan tersebut terdapat dalam folder ini dalam file<operation name>.xml
yang dipetakan ke pernyataan kebijakan untuk setiap operasi.policies\products\
- Jika Anda memiliki kebijakan yang ditentukan pada cakupan produk, kebijakan tersebut terkandung dalam folder ini, yang berisi<product name>.xml
file yang dipetakan ke pernyataan kebijakan untuk setiap produk.
folder portalStyles
Folder portalStyles
berisi konfigurasi dan lembar gaya untuk kustomisasi portal pengembang yang tidak digunakan lagi dari instans layanan.
portalStyles\configuration.json
- Berisi nama-nama lembar gaya yang digunakan oleh portal pengembangportalStyles\<style name>.css
- Setiap file<style name>.css
berisi gaya untuk portal pengembang (Preview.css
danProduction.css
secara default).
folder portalTemplate
Folder portalTemplates
berisi templat untuk menyesuaikan portal pengembang yang tidak digunakan lagi dari instans layanan.
portalTemplates\<template name>\configuration.json
- Konfigurasi templat.portalTemplates\<template name>\<page name>.html
- Halaman HTML asli dan yang dimodifikasi dari templat.
folder produk
Folder products
berisi folder untuk setiap produk yang ditentukan dalam instans layanan.
products\<product name>\configuration.json
- Konfigurasi untuk produk. Ini adalah informasi yang sama yang akan dikembalikan jika Anda memanggil operasi Dapatkan produk tertentu.products\<product name>\product.description.html
- Deskripsi produk, sesuai dengandescription
properti entitas produk di REST API.
templat
Folder templates
berisi konfigurasi untuk templat email dari instans layanan.
<template name>\configuration.json
- Konfigurasi untuk templat email.<template name>\body.html
- Isi templat email.
Langkah berikutnya
Untuk informasi tentang cara lain untuk mengelola instans layanan Anda, lihat: