Halaman ini menjelaskan cara membuat deployment. Deployment adalah pembuatan instance serangkaian resource yang ditentukan dalam konfigurasi. Anda memberikan konfigurasi yang valid dalam permintaan untuk membuat deployment. Deployment dapat berisi sejumlah resource, di berbagai layanan Google Cloud. Saat Anda membuat deployment, Deployment Manager akan membuat semua resource yang dijelaskan di masing-masing Google Cloud API.
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.
- Buat konfigurasi.
Membuat deployment
Saat membuat deployment, Anda membuat resource Deployment yang berisi kumpulan resource. Setiap resource ditetapkan secara eksplisit dalam konfigurasi yang Anda berikan dalam permintaan.
gcloud
Dengan Google Cloud CLI, gunakan perintah deployments create
:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
Flag --config
adalah jalur relatif ke file konfigurasi YAML Anda.
Secara default, jika konfigurasi Anda menyertakan resource yang sudah ada dalam project, resource tersebut akan diperoleh oleh deployment, dan dapat dikelola menggunakan deployment tersebut. Jika tidak ingin memperoleh resource,
Anda harus menggunakan opsi --create-policy
, seperti dalam perintah gcloud beta
berikut:
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
Untuk informasi tentang kebijakan yang dapat digunakan saat membuat deployment, lihat Menyetel kebijakan untuk membuat resource.
Jika deployment berhasil dibuat, Anda bisa mendapatkan deskripsi deployment:
gcloud deployment-manager deployments describe my-first-deployment
API
Di API, buat permintaan insert()
dengan konfigurasi yang disediakan secara inline, dalam isi permintaan:
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "example-config-with-templates",
"target": {
"config": {
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
}
}
}
Jika mengimpor template, Anda juga harus menyediakan template tersebut sebagai bagian dari isi permintaan. Misalnya, permintaan API berikut
memiliki target
yang mengimpor satu template, bernama vm_template.jinja
:
POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "my-example-config-with-templates-2",
"target": {
"config": {
"content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n type: vm_template.jinja"
},
"imports": [
{
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
"name": "vm_template.jinja"
}
]
}
}
Menetapkan kebijakan untuk membuat resource
Saat Anda membuat deployment baru, jika resource yang ingin dibuat sudah ada di project Anda, resource tersebut akan diakuisisi oleh deployment.
Dalam kasus tersebut, Deployment Manager tidak akan membuat resource baru.
Jika tidak ingin memperoleh resource yang ada, Anda harus menggunakan kebijakan CREATE
untuk deployment.
Anda dapat menggunakan kebijakan berikut untuk membuat resource:
CREATE_OR_ACQUIRE
- [Default] Deployment Manager memperoleh resource yang ada dalam project, atau membuat resource jika tidak ada. Untuk mendapatkan resource, Deployment Manager akan memeriksa konfigurasi resource untuk mengetahui properti yang ingin Anda buat. Jika ada resource dengan properti yang sama, Deployment Manager akan mendapatkan resource tersebut sebagai bagian dari deployment Anda.Properti yang diperiksa oleh Deployment Manager bergantung pada jenis resource yang Anda buat, dan mungkin mencakup:
name
resourcetype
resourcezone
atauregion
resource, jika berlaku
Properti adalah bagian dari URL untuk permintaan API
GET
untuk resource. Guna melihat properti yang digunakan Deployment Manager untuk memperoleh resource, baca dokumentasi API untuk metodeGET
resource. Misalnya, untuk instance Compute Engine, URL permintaan untuk metodeinstances.get
menyertakanresourceId
(name
dalam konfigurasi Anda),zone
, danproject
.CREATE
- Deployment Manager membuat resource yang tidak ada. Jika salah satu resource dalam konfigurasi Anda sudah ada dalam project, deployment akan gagal.ACQUIRE
- Deployment Manager memperoleh resource yang sudah ada, menggunakan kriteria yang sama sepertiCREATE_OR_ACQUIRE
.Gunakan kebijakan
ACQUIRE
jika Anda sudah memiliki sejumlah resource di project, dan ingin mengelolanya bersama-sama, sebagai satu deployment.Di template atau konfigurasi, Anda harus menyediakan properti yang diperlukan untuk resource ini seolah-olah Anda sedang membuatnya. Jika salah satu resource dalam konfigurasi Anda tidak ada dalam project, deployment akan gagal.
Mencantumkan deployment Anda
Lihat daftar deployment Anda di Google Cloud Console, API, atau Google Cloud CLI.
Konsol
Buka halaman Deployment di Konsol Google Cloud.
gcloud
Dengan Google Cloud CLI, gunakan subperintah deployments list
:
gcloud deployment-manager deployments list
API
Di API, buat permintaan GET
kosong ke koleksi Deployment:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments
Langkah selanjutnya
- Menambahkan label ke deployment.
- Memperbarui deployment.