Halaman ini menjelaskan cara membuat jenis komposit dengan Deployment Manager. Setelah membuat jenis gabungan, Anda dapat memanggil jenis tersebut dalam konfigurasi Anda dan membuat deployment.
Jenis komposit adalah satu atau beberapa template yang dikonfigurasi agar berfungsi bersama yang telah ditambahkan secara permanen ke Deployment Manager. Setelah ditambahkan, Anda dapat menggunakan jenis komposit seperti Anda akan menggunakan jenis milik Google. Untuk mempelajari Jenis lebih lanjut, baca Ringkasan Jenis.
Misalnya, Anda dapat membuat kumpulan template yang men-deploy grup instance terkelola dengan load balancing jaringan. Anda akan menambahkan template tersebut sebagai jenis komposit ke Deployment Manager, lalu dapat menggunakan template tersebut dalam konfigurasi mendatang seperti yang akan Anda lakukan dengan jenis lainnya.
Anda mungkin juga tertarik dengan Berbagi Jenis di Seluruh Project.
Sebelum memulai
- Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line`gcloud`.
- Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
- Gunakan API v2beta untuk contoh API dalam panduan ini.
Komponen jenis komposit
Untuk membuat jenis komposit, Anda harus memiliki template Jinja atau Python level teratas dan, secara opsional, kumpulan file pendukung yang akhirnya di-resolve menjadi jenis dasar. Jenis gabungan dapat terdiri dari resource yang merupakan jenis gabungan lainnya. Deployment Manager akan memperluas jenis ini secara berulang selama deployment.
Jenis komposit terdiri dari:
- Template level teratas: Template Jinja atau Python level teratas yang dijalankan selama ekspansi saat jenis dipanggil.
- Skema: File Skema JSON yang menjelaskan informasi tentang template level teratas dan sub-impor yang ditentukan.
- File yang diimpor: File tambahan apa pun yang diperlukan untuk eksekusi, seperti file helper, sub-templates, dan skema yang relevan untuk sub-template, jika berlaku. Namun, langkah ini bersifat opsional. Jenis komposit juga dapat berisi satu template tingkat atas saja.
Membuat jenis gabungan
Anda dapat membuat jenis komposit dengan mendaftarkan template level teratas konfigurasi serta impor dan skema terkaitnya. Buat jenis gabungan
menggunakan gcloud
atau API.
Anda mungkin juga tertarik dengan contoh yang menjelaskan cara membuat dan memanggil jenis komposit.
gcloud
Anda harus berada di direktori tempat Anda menyimpan template level teratas dan subtemplate yang merupakan bagian dari jenis komposit ini agar dapat menjalankan perintah ini.
Dengan gcloud CLI, buat permintaan types create
, lalu tentukan template level teratas dan nama jenis yang diinginkan untuk memanggil jenis komposit ini.
Jalankan perintah ini di direktori lokal tempat Anda memiliki file template.
$ gcloud beta deployment-manager types create [TYPE_NAME] --template=[TOP_LEVEL_TEMPLATE]
dengan:
[TYPE_NAME]
adalah nama yang ingin Anda panggil jenis ini[TOP_LEVEL_TEMPLATE]
adalah jalur relatif ke template tingkat atas yang mendeskripsikan jenis ini.
API
Di API, buat permintaan POST
yang berisi kolom composite
dan name
. Di kolom composite
, tentukan:
- Skema tingkat atas
- Konten template yang diimpor
- Konten template level teratas
Isi permintaan API memiliki struktur berikut:
POST https://www.googleapis.com/deploymentmanager/v2beta/projects/[PROJECT_ID]/global/compositeTypes
{
"composite": {
"files": {
"schema": "[CONTENTS_OF_SCHEMA]",
"imports": [
{
"name": "[TEMPLATE_FILE]",
"content": "[CONTENTS_OF_TEMPLATE_FILE]"
},
{
"name": "[ANOTHER_TEMPLATE_IF_NECESSARY]",
"content": "[CONTENTS_OF_TEMPLATES]"
}
],
"template": "[TOP-LEVEL_TEMPLATE_CONTENTS]",
"templateFileType": "[FILE_TYPE]"
}
},
"name": "[TYPE_NAME]"
}
Untuk mengetahui contoh cara membuat permintaan ini, lihat Membuat jenis gabungan grup instance terkelola dengan penskalaan otomatis.
Untuk informasi selengkapnya, lihat dokumentasi untuk
metode insert
.
Men-deploy jenis komposit
Jenis adalah resource per project dan dapat diakses sesuai dengan izin yang dijelaskan dalam dokumentasi Kontrol Akses. Definisinya yaitu:
- Editor dan pelihat project, serta editor jenis dapat membuat dan menggunakan jenis yang tersedia untuk project tersebut.
- Type viewer bisa mendapatkan daftar jenis dan jenis penggunaan yang tersedia untuk project tersebut.
Anda juga dapat menambahkan project lain sebagai penampil jenis agar mereka dapat mengakses jenis Anda. Baca Jenis Berbagi di Seluruh Project.
Setelah mendaftarkan jenis gabungan, Anda dapat men-deploy jenis tersebut dengan cara yang sama seperti memanggil jenis yang dikelola Google:
types: [PROJECT_ID]/composite:[TYPE_NAME]
Contoh:
resources:
- name: my example-resource
type: example-project/composite:autoscaled-igm
properties:
...
Men-deploy jenis komposit secara langsung dengan alat command line
Deployment Manager menawarkan kemampuan untuk men-deploy jenis komposit secara langsung dengan Google Cloud CLI. Alih-alih membuat file konfigurasi level teratas, gcloud CLI akan otomatis menghasilkan konfigurasi level teratas untuk Anda.
Misalnya, perintah berikut men-deploy jenis komposit yang disebut autoscaled-igm
:
gcloud deployment-manager deployments create my-igm \
--composite-type example-project/composite:autoscaled-igm
Anda juga dapat menetapkan properti jenis komposit menggunakan flag --properties
:
gcloud deployment-manager deployments create my-igm \
--composite-type example-project/composite:autoscaled-igm \
--properties zone:us-central1-a
Perlu diperhatikan bahwa:
Semua nilai diuraikan sebagai nilai YAML. Misalnya,
version: 3
diteruskan sebagai bilangan bulat. Jika Anda ingin menetapkannya sebagai string, letakkan tanda kutip tunggal yang di-escape di sekitar nilai,version: \'3\'
.Nilai Boolean tidak peka huruf besar/kecil, sehingga
TRUE
,true
, danTrue
diperlakukan sama.Anda harus meneruskan semua properti wajib yang ditentukan oleh jenis komposit. Anda tidak dapat memberikan sub-kumpulan properti saja. Jika properti tertentu memiliki nilai default, Anda dapat menghapus properti dari command line.
Untuk menentukan beberapa properti, berikan key:value pair yang dipisahkan koma. Bagaimanapun urutan Anda menentukan pasangan tersebut. Contoh:
gcloud deployment-manager deployments create my-igm \ --composite-type example-project/composite:autoscaled-igm \ --properties zone:us-central1-a,machineType:n1-standard-1,image:debian-8
Setelah menjalankan perintah ini, Deployment Manager akan membuat deployment menggunakan jenis komposit yang Anda berikan. Anda dapat mengonfirmasi bahwa deployment telah dibuat menggunakan Google Cloud Console atau gcloud CLI. Untuk informasi tentang melihat deployment, baca Melihat manifes.
Contoh: Membuat jenis komposit
Deployment Manager menawarkan banyak contoh konfigurasi dari repositori GitHub Deployment Manager yang dapat Anda gunakan sebagai jenis komposit. Untuk contoh ini, Anda akan menambahkan jenis komposit yang men-deploy layanan ketersediaan tinggi yang di-load balanced ke beberapa zona dalam satu region. Untuk informasi selengkapnya, lihat contoh lengkap.
Dalam contoh ini, file konfigurasi tingkat atas adalah file ha-service.py. Semua sub-template diimpor dalam file skema.
- Download file Python dan skema dari direktori GitHub. Hapus semua file di subdirektori dan file diagram.
Di direktori lokal tempat Anda mendownload semua file, jalankan perintah berikut untuk membuat jenis komposit baru yang disebut
ha-service-example
:gcloud beta deployment-manager types create ha-service-example --template=ha-service.py
Dapatkan daftar jenis untuk mengonfirmasi bahwa jenis tersebut berhasil dibuat:
gcloud beta deployment-manager types list --provider composite
Deskripsikan jenis baru Anda:
gcloud beta deployment-manager types describe ha-service-example --provider composite
Buat konfigurasi baru yang men-deploy jenis Anda. Ganti
[PROJECT_ID]
dengan project ID Anda:resources: - name: ha-service-example type: [PROJECT_ID]/composite:ha-service-example properties: dockerImage: gcr.io/deployment-manager-examples/nodejsservicestatic zones: - us-central1-b - us-central1-a
Simpan konfigurasi sebagai
example-config.yaml
. Perhatikan bahwa Anda tidak perlu mengimpor template apa pun dalam konfigurasi.Deploy jenis komposit baru Anda:
gcloud deployment-manager deployments create ha-service-deployment --config example-config.yaml
API akan ditampilkan dengan daftar resource yang dibuat dari jenis:
Waiting for create [operation-1488254932422-5498f5a950d71-2bd3b8c8-b13ddab5]...done. Create operation operation-1488254932422-5498f5a950d71-2bd3b8c8-b13ddab5 completed successfully. NAME TYPE STATE ERRORS INTENT ha-service-deployment-lb-fr compute.v1.forwardingRule COMPLETED [] ha-service-deployment-lb-hc compute.v1.httpHealthCheck COMPLETED [] ha-service-deployment-lb-tp compute.v1.targetPool COMPLETED [] ha-service-deployment-service-us-central1-a-as compute.v1.autoscaler COMPLETED [] ha-service-deployment-service-us-central1-a-igm compute.v1.instanceGroupManager COMPLETED [] ha-service-deployment-service-us-central1-a-it compute.v1.instanceTemplate COMPLETED [] ha-service-deployment-service-us-central1-b-as compute.v1.autoscaler COMPLETED [] ha-service-deployment-service-us-central1-b-igm compute.v1.instanceGroupManager COMPLETED [] ha-service-deployment-service-us-central1-b-it compute.v1.instanceTemplate COMPLETED []
Selamat, Anda telah membuat jenis komposit pertama!
Langkah selanjutnya
- Membagikan jenis kepada project lain.
- Menghapus jenis.
- Buat konfigurasi.
- Membuat deployment.
- Membuat jenis dasar menggunakan penyedia jenis.