Tutorial ini menunjukkan cara men-deploy aplikasi contoh Python Bookshelf menggunakan Cloud Deployment Manager.
Deployment Manager memungkinkan Anda membuat resource yang diperlukan Google Cloud untuk deployment dalam satu langkah, melalui proses deklaratif yang dapat diulang. Dengan Deployment Manager, Anda dapat memperbarui deployment, melacak modifikasi dari waktu ke waktu, membuat template menggunakan Jinja atau Python, dan membuat parameter template, sehingga deployment serupa dapat menggunakan template yang sama.
Tujuan
- Membuat clone dan mengonfigurasi aplikasi contoh Bookshelf.
- Membuat konfigurasi dan template Deployment Manager.
- Membuat deployment Deployment Manager.
- Men-deploy aplikasi contoh Bookshelf menggunakan Deployment Manager.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen yang dapat ditagih berikut Google Cloud:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.
Sebelum memulai
- Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Datastore API, Cloud Storage API, Pub/Sub API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Datastore API, Cloud Storage API, Pub/Sub API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Instal Python,
pip, danvirtualenvdi sistem Anda. Untuk mengetahui petunjuknya, lihat Menyiapkan lingkungan pengembangan Python untuk Google Cloud.
Membuat bucket Cloud Storage
Petunjuk berikut menjelaskan cara membuat bucket Cloud Storage. Bucket adalah container dasar yang menyimpan data Anda di Cloud Storage.
Di jendela terminal, buat bucket Cloud Storage, dengan YOUR_BUCKET_NAME mewakili nama bucket Anda:
gcloud storage buckets create gs://YOUR_BUCKET_NAME
Untuk melihat gambar yang diupload di aplikasi Bookshelf, tetapkan kebijakan Identity and Access Management bucket untuk memberikan peran
legacyObjectReaderkepadaallUsers:gcloud storage buckets add-iam-policy-binding gs://YOUR_BUCKET_NAME --member=allUsers --role=roles/storage.legacyObjectReader
Membuat clone aplikasi contoh
Aplikasi contoh tersedia di GitHub di
GoogleCloudPlatform/getting-started-python.
Buat clone repositori:
git clone https://github.com/GoogleCloudPlatform/getting-started-python.git -b stepsBuka direktori contoh:
cd getting-started-python/7-gce
Mengonfigurasi aplikasi
Buka
config.pyuntuk mengedit.Tetapkan nilai
PROJECT_IDke project ID Anda.Tetapkan nilai
CLOUD_STORAGE_BUCKETke nama bucket Cloud Storage Anda.
Simpan dan tutup
config.py.
Menjalankan aplikasi di komputer lokal Anda
Buat lingkungan Python yang terisolasi, dan instal dependensi:
Linux/macOS
virtualenv -p python3 env source env/bin/activate pip install -r requirements.txtWindows
virtualenv -p python3 env env\scripts\activate pip install -r requirements.txtJalankan aplikasi:
python main.pyDi browser Anda, masukkan alamat berikut:
Untuk menghentikan server web lokal, tekan Control+C. Jika ingin keluar dari lingkungan virtual, masukkan deactivate.
Men-deploy aplikasi contoh
Mengirim kode Anda ke repositori
Anda dapat memasukkan kode ke instance Compute Engine yang berjalan dengan beberapa cara. Salah satu caranya adalah menggunakan Cloud Source Repositories. Setiap project menyertakan repositori Git yang tersedia untuk instance Compute Engine. Instance Anda kemudian akan mengambil kode aplikasi versi terbaru selama startup. Menggunakan repositori Git lebih praktis karena memperbarui aplikasi tidak memerlukan konfigurasi image atau instance baru; cukup mulai ulang instance yang ada atau buat instance baru.
Untuk pertama kalinya menggunakan Git, gunakan
git config --globaluntuk menyiapkan identitas Anda.Di Google Cloud konsol, buat repositori:
Kemudian, kirim kode aplikasi Anda ke repositori project Anda dengan
[YOUR_PROJECT_ID]sebagai project ID Anda dan[YOUR_REPO]sebagai nama repositori Anda:git commit -am "Updating configuration" git config credential.helper gcloud.sh git remote add cloud https://source.developers.google.com/p/[YOUR_PROJECT_ID]/r/[YOUR_REPO] git push cloud master
Membuat deployment
Setelah konfigurasi Anda di-commit dan kode Anda diupload ke Cloud Source Repositories, Anda dapat menggunakan Deployment Manager untuk membuat deployment:
Buka direktori
deployment_manager:cd getting-started-python/7-gce/gce/deployment_managerBuat deployment:
gcloud deployment-manager deployments create my-deployment --config config.yamlLihat daftar semua deployment:
gcloud deployment-manager deployments listDapatkan deskripsi deployment dan resource yang dibuatnya:
gcloud deployment-manager deployments describe my-deployment
Melihat aplikasi Anda
Setelah membuat aturan penerusan, mungkin perlu beberapa menit untuk menerapkan konfigurasi Anda dan merutekan traffic ke instance Anda.
Untuk memeriksa progres:
gcloud compute backend-services get-health bookshelf-my-deployment-frontend --globalJika setidaknya salah satu instance Anda melaporkan
HEALTHY, dapatkan alamat IP penerusan untuk load balancer:gcloud compute forwarding-rules list --globalAlamat IP aturan penerusan Anda ada di kolom
IP_ADDRESS.Di browser Anda, masukkan alamat IP dari daftar.
Aplikasi Anda kini berjalan di Google Cloud.
Memahami kode
Mengonfigurasi deployment
Anda dapat melihat cara deployment dikonfigurasi di config.yaml:
File konfigurasi mengimpor file template sebagai resource dan menggunakannya untuk menentukan resource bernama bookshelf. Template mengambil beberapa properti sebagai parameter. Untuk mengetahui informasi selengkapnya tentang cara membuat
file konfigurasi Deployment Manager, lihat
Membuat konfigurasi.
Mengonfigurasi skema template deployment
Lihat file skema bookshelf.jinja.schema, yang menentukan dan mendokumentasikan parameter yang diharapkan akan diberikan oleh deployment dalam file konfigurasinya. Untuk mengetahui informasi selengkapnya tentang skema konfigurasi, lihat
Menggunakan skema.
Mengonfigurasi template deployment
Template menentukan beberapa resource yang diperlukan untuk membuat grup instance terkelola yang di-load balance dan di-autoscaling. Untuk mengetahui deskripsi lengkap resource yang dibuat, lihat komentar dalam template dan tinjau tutorial Bookshelf di Compute Engine.
Perlu diingat bahwa Deployment Manager menyediakan cara untuk menentukan resource secara deklaratif, tetapi sebagian besar konfigurasi untuk resource tertentu ditentukan oleh API-nya. Misalnya, sebagian besar opsi konfigurasi untuk resource template instance dapat ditemukan dalam definisi resource template instance di dokumentasi referensi untuk Compute Engine API.
Template ditulis menggunakan Jinja bahasa templating. Saat menulis template Deployment Manager, Anda dapat menggunakan Jinja atau Python. Jinja memiliki keunggulan karena lebih deklaratif, yang dapat lebih mudah dibaca dan dipahami daripada Python. Untuk beberapa deployment yang kompleks, ekspresi lengkap Python dapat membuat semuanya lebih sederhana. Dalam hal ini, Jinja cukup untuk membuat resource yang diperlukan.
Dalam template, variabel lingkungan tertentu ditetapkan secara otomatis, dan Anda dapat mengakses variabel ini menggunakan kamus env. Dalam hal ini, nama deployment direferensikan sebagai nama yang akan digunakan kembali saat menetapkan nama ke resource yang dibuat. Untuk mengetahui informasi selengkapnya tentang variabel lingkungan yang tersedia, lihat
Menggunakan variabel lingkungan
dalam dokumentasi Deployment Manager:
Template menggunakan skrip startup yang sama yang digunakan dalam tutorial Compute Engine . Konten skrip dimasukkan ke dalam template, dan direktif indent Jinja mengindentasi konten dengan benar:
Dalam template Jinja Deployment Manager, Anda juga dapat merujuk ke resource yang dibuat di tempat lain dalam template. Dalam contoh berikut, layanan backend menggunakan referensi grup instance terkelola untuk mendapatkan grup instance yang harus ditujunya:
Properti yang ditentukan dalam config.yaml dapat digunakan dalam template:
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di Google Cloud konsol, buka halaman Manage resources.
- Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus deployment
Untuk menghapus deployment, masukkan perintah berikut. Perintah ini menghapus load balancer dan instance Compute Engine apa pun yang terkait dengan deployment Anda:
gcloud deployment-manager deployments delete my-deployment
Langkah berikutnya
Pelajari lebih lanjut cara menentukan template Deployment Manager.
Pelajari cara menjalankan aplikasi contoh Python Bookshelf di Google Kubernetes Engine.
Pelajari cara menjalankan aplikasi contoh Python Bookshelf di lingkungan fleksibel App Engine.
Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.
Pelajari layanan lainnya.Google Cloud