Tutorial ini menunjukkan cara men-deploy aplikasi contoh Python Bookshelf menggunakan Cloud Deployment Manager.
Deployment Manager memungkinkan Anda membuat Cloud de Confiance by S3NS resource yang diperlukan 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.
- Buat konfigurasi dan template Deployment Manager.
- Buat deployment Deployment Manager.
- Deploy aplikasi contoh Bookshelf menggunakan Deployment Manager.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Cloud de Confiance by S3NSyang dapat ditagih berikut:
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
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
Enable the Datastore API, Cloud Storage API, Pub/Sub API APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
Instal Python,
pip, danvirtualenvdi sistem Anda. Untuk mengetahui petunjuknya, lihat Menyiapkan lingkungan pengembangan Python untuk Cloud de Confiance by S3NS.
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
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 Anda 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 sedang berjalan dengan beberapa cara. Salah satu caranya adalah dengan menggunakan Cloud Source Repositories. Setiap project menyertakan repositori Git yang tersedia untuk instance Compute Engine. Instance Anda kemudian akan mengambil versi terbaru kode aplikasi Anda selama startup. Menggunakan repositori Git sangat memudahkan karena mengupdate aplikasi Anda 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 konsol Cloud de Confiance , 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 di-commit dan kode 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.yamlMelihat 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 Anda membuat aturan penerusan, mungkin perlu waktu beberapa menit hingga konfigurasi Anda diterapkan dan traffic dirutekan ke instance Anda.
Untuk memeriksa progres:
gcloud compute backend-services get-health bookshelf-my-deployment-frontend --globalJika setidaknya 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 Cloud de Confiance.
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 ini menggunakan 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 disediakan oleh deployment dalam file konfigurasinya. Untuk mengetahui informasi selengkapnya tentang skema konfigurasi, lihat
Menggunakan skema.
Mengonfigurasi template deployment
Template ini menentukan beberapa resource yang diperlukan untuk membuat grup instance terkelola dengan penskalaan otomatis dan load balancing. Untuk deskripsi lengkap tentang resource yang dibuat, lihat komentar di 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 ini ditulis menggunakan bahasa template Jinja. 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 penuh Python mungkin membuat segalanya lebih sederhana. Dalam hal ini, Jinja sudah 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 dirujuk 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 ini menggunakan skrip startup yang sama dengan 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 dituju:
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 konsol Cloud de Confiance , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus deployment Anda
Untuk menghapus deployment, masukkan perintah berikut. Perintah ini menghapus load balancer dan semua instance Compute Engine 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 Bookshelf Python di lingkungan fleksibel App Engine.
Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.
Pelajari Cloud de Confiance layanan lainnya.