Halaman ini menjelaskan cara membuat jenis komposit dengan Deployment Manager. Setelah membuat jenis komposit, Anda dapat memanggil jenis tersebut dalam konfigurasi dan membuat deployment.
Jenis komposit adalah satu atau beberapa template yang dikonfigurasi untuk bekerja sama dan telah ditambahkan secara permanen ke Deployment Manager. Setelah ditambahkan, Anda dapat menggunakan jenis komposit seperti menggunakan jenis milik Google. Untuk mempelajari Jenis lebih lanjut, baca Ringkasan Jenis.
Misalnya, Anda dapat membuat sekumpulan template yang men-deploy grup instance terkelola yang di-load balance oleh jaringan. Anda menambahkan template tersebut sebagai jenis komposit ke Deployment Manager, lalu dapat menggunakan template tersebut dalam konfigurasi mendatang seperti menggunakan 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 v2beta API untuk contoh API dalam panduan ini.
Komponen jenis komposit
Untuk membuat jenis komposit, Anda harus memiliki template Jinja atau Python tingkat atas dan secara opsional, sekumpulan file pendukung yang pada akhirnya akan di-resolve ke jenis dasar. Jenis komposit dapat terdiri dari resource yang merupakan jenis komposit lainnya. Deployment Manager akan memperluas jenis ini secara rekursif selama deployment.
Jenis komposit terdiri dari:
- Template tingkat atas: Template tingkat atas Jinja atau Python yang dieksekusi selama perluasan saat jenis dipanggil.
- Skema: File Skema JSON yang menjelaskan informasi tentang template tingkat atas dan sub-impor yang ditentukan.
- File yang diimpor: File tambahan yang diperlukan untuk eksekusi, seperti file helper, sub-template, dan skema yang relevan untuk sub-template, jika berlaku. Namun, hal ini bersifat opsional. Jenis komposit Anda juga dapat berisi satu template tingkat atas.
Membuat jenis komposit
Anda dapat membuat jenis komposit dengan mendaftarkan template tingkat atas konfigurasi dan impor serta skema terkait. Buat jenis komposit 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 tingkat atas dan sub-template yang merupakan bagian dari jenis komposit ini, untuk menjalankan perintah ini.
Dengan menggunakan gcloud CLI, buat permintaan types create, lalu tentukan template tingkat atas dan nama jenis yang diinginkan untuk memanggil jenis komposit ini.
Jalankan perintah ini di direktori lokal tempat Anda menyimpan file template.
$ gcloud beta deployment-manager types create [TYPE_NAME] --template=[TOP_LEVEL_TEMPLATE]
dengan:
[TYPE_NAME]adalah nama yang ingin Anda gunakan untuk memanggil jenis ini[TOP_LEVEL_TEMPLATE]adalah jalur relatif ke template tingkat atas yang menjelaskan 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 tingkat atas
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 contoh cara membuat permintaan ini, lihat
Membuat jenis komposit grup instance terkelola yang di-autoscaling.
Untuk mengetahui 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 penampil project, serta editor jenis dapat membuat dan menggunakan jenis yang tersedia untuk project tersebut.
- Penampil jenis dapat mendapatkan daftar jenis dan menggunakan jenis yang tersedia untuk project tersebut.
Anda juga dapat menambahkan project lain sebagai penampil jenis sehingga mereka dapat mengakses jenis Anda. Baca Berbagi Jenis di Seluruh Project.
Setelah mendaftarkan jenis komposit, 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. Daripada membuat file konfigurasi tingkat atas, gcloud CLI akan otomatis membuat konfigurasi tingkat atas 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 tanda --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: 3diteruskan sebagai bilangan bulat. Jika Anda ingin menentukannya sebagai string, sertakan tanda kutip tunggal yang di-escape di sekitar nilai,version: \'3\'.Nilai Boolean tidak peka huruf besar/kecil, sehingga
TRUE,true, danTruediperlakukan sama.Anda harus meneruskan semua properti yang diperlukan yang ditentukan oleh jenis komposit. Anda tidak dapat hanya memberikan subset properti. Jika properti tertentu memiliki nilai default, Anda dapat menghapus properti dari command line.
Untuk menentukan beberapa properti, berikan key-value pair yang dipisahkan koma. Urutan penentuan pasangan tidak menjadi masalah. 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-8Setelah menjalankan perintah ini, Deployment Manager akan membuat deployment menggunakan jenis komposit yang Anda berikan. Anda dapat mengonfirmasi bahwa deployment telah dibuat menggunakan Google Cloud konsol atau gcloud CLI. Untuk mengetahui informasi tentang cara melihat a 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 balance ke beberapa zona dalam satu region. Untuk mengetahui informasi selengkapnya, lihat contoh lengkap.
Dalam contoh ini, file konfigurasi tingkat atas adalah file ha-service.py. Semua sub-template diimpor dalam file skema.
- Unduh file Python dan skema dari direktori GitHub. Hapus file apa pun di subdirektori dan file diagram apa pun.
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.pyDapatkan daftar jenis untuk mengonfirmasi bahwa jenis berhasil dibuat:
gcloud beta deployment-manager types list --provider compositeDeskripsikan jenis baru Anda:
gcloud beta deployment-manager types describe ha-service-example --provider compositeBuat konfigurasi baru yang men-deploy jenis Anda. Ganti
[PROJECT_ID]dengan ID project 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-aSimpan 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.yamlAPI akan menampilkan daftar resource yang dibuat dari jenis tersebut:
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 Anda.
Langkah berikutnya
- Membagikan jenis dengan project lain.
- Menghapus jenis.
- Membuat konfigurasi.
- Membuat deployment.
- Membuat jenis dasar menggunakan penyedia jenis.