ID region
REGION_ID
adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak mewakili suatu negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r
disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal ini, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Pelajari cara mengaktifkan akses Cloud Storage ke aplikasi Python App Engine Anda dan membuat, menulis, membaca, serta membuat daftar file di bucket Cloud Storage.
Tutorial ini mengasumsikan bahwa Anda sudah memahami Python dan telah menyiapkan lingkungan pengembangan.
Saat dijalankan, contoh ini akan mengeksekusi skrip dan menulis output-nya ke browser. Skrip ini menunjukkan fitur-fitur dari library klien Cloud Storage:
- Membuat file dan menulis file ke bucket.
- Membaca file dan mendapatkan metadata filenya.
- Membuat beberapa file, lalu membuat daftarnya dari bucket.
- Mencantumkan file yang baru saja ditambahkan ke bucket.
- Membaca kumpulan file yang sama.
- Menghapus kumpulan file.
Tujuan
- Mempelajari project Python untuk melihat tata letak dan file yang diperlukan.
- Memahami kode untuk terhubung ke Cloud Storage.
- Memahami kode untuk membuat, menulis, membaca, membuat daftar, dan menghapus file.
- Memahami kode untuk percobaan ulang.
- Membangun dan menguji aplikasi di server pengembangan lokal Anda.
- Men-deploy aplikasi ke produksi di Google App Engine.
Biaya
App Engine memiliki tingkat penggunaan gratis. Jika total penggunaan App Engine Anda tidak melebihi batas yang ditentukan dalam kuota gratis App Engine, Anda tidak akan dikenai biaya untuk melakukan tutorial ini.
Sebelum memulai
Sebelum mulai menjalankan contoh ini, Anda memerlukan project ID, alat command line gcloud
, dan bucket Cloud Storage:
Buat project Konsol Google Cloud baru atau ambil project ID dari project yang ada dari Konsol Google Cloud:
Instal, lalu inisialisasi Google Cloud CLI:
Mencantumkan project ID Konsol Google Cloud Anda dengan gcloud
Dari command line, jalankan:
gcloud projects list
Meng-clone project tutorial
Untuk meng-clone project:
Clone library klien dan aplikasi (demo) contoh ke mesin lokal Anda.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Buka direktori yang sesuai dalam project yang di-clone atau didownload:
cd python-docs-samples/appengine/standard/storage/appengine-client
Menginstal dependensi
Alat virtualenv
memungkinkan Anda membuat lingkungan Python yang bersih di sistem.
Untuk pengembangan App Engine, hal ini membantu memastikan kode yang Anda uji secara lokal mirip dengan lingkungan tempat kode akan di-deploy. Untuk mempelajari lebih lanjut, baca Menggunakan library pihak ketiga.
Untuk menginstal virtualenv
dan dependensi contoh:
Mac OS/Linux
- Jika Anda tidak memiliki virtualenv, instal di seluruh sistem menggunakan
pip
.sudo pip install virtualenv
- Buat lingkungan Python yang terisolasi:
virtualenv env
source env/bin/activate
- Jika Anda tidak berada dalam direktori yang berisi kode contoh, buka direktori yang berisi kode contoh
hello_world
. Kemudian instal dependensi:cd YOUR_SAMPLE_CODE_DIR
pip install -t lib -r requirements.txt
Windows
Jika sudah menginstal Google Cloud CLI, Anda seharusnya sudah menginstal Python 2.7, biasanya di C:\python27_x64\
(untuk sistem 64-bit). Gunakan PowerShell untuk menjalankan paket Python Anda.
- Temukan penginstalan PowerShell Anda.
- Klik kanan pintasan untuk PowerShell dan mulai sebagai administrator.
-
Coba jalankan perintah
python
. Jika tidak ditemukan, tambahkan folder Python kePATH
lingkungan Anda.$env:Path += ";C:\python27_x64\"
- Jika Anda tidak memiliki virtualenv, instal di seluruh sistem menggunakan
pip
:python -m pip install virtualenv
- Buat lingkungan Python yang terisolasi.
python -m virtualenv env
. env\Scripts\activate
- Buka direktori project Anda lalu instal dependensi. Jika Anda tidak berada dalam direktori yang berisi kode contoh, buka direktori yang berisi kode contoh
hello_world
. Kemudian, instal dependensi:cd YOUR_SAMPLE_CODE_DIR
python -m pip install -t lib -r requirements.txt
Kode contoh yang Anda clone atau download sudah berisi file appengine_config.py
, yang diperlukan untuk menginstruksikan App Engine agar menggunakan folder lib
untuk memuat dependensi secara lokal dan saat di-deploy.
Menjalankan proses secara lokal
Untuk menjalankan contoh secara lokal:
Dalam subdirektori project
python-docs-samples/appengine/standard/storage/appengine-client
, jalankan aplikasi di server pengembangan lokal:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py .
Tunggu pesan berhasil, yang terlihat seperti ini:
INFO 2016-04-12 21:33:35,446 api_server.py:205] Starting API server at: http://localhost:36884 INFO 2016-04-12 21:33:35,449 dispatcher.py:197] Starting module "default" running at: http://localhost:8080 INFO 2016-04-12 21:33:35,449 admin_server.py:116] Starting admin server at: http://localhost:8000
Kunjungi URL ini di browser Anda:
Aplikasi akan dieksekusi saat halaman dimuat, dengan menampilkan output ke browser untuk menunjukkan apa yang telah dieksekusi. Outputnya akan terlihat seperti ini:
Hentikan server pengembangan dengan menekan Control-C.
Panduan app.yaml
File app.yaml
menetapkan detail konfigurasi aplikasi:
Untuk informasi selengkapnya tentang opsi konfigurasi yang tersedia dalam file ini, lihat referensi app.yaml.
Panduan impor
File main.py
berisi impor standar yang digunakan untuk mengakses Cloud Storage melalui library klien:
Anda memerlukan modul os
dan app_identity
API untuk mendapatkan nama bucket default pada runtime. Anda akan memerlukan nama bucket ini untuk semua operasi akses Cloud Storage.
Contoh ini juga menggunakan framework web webapp2
.
Menentukan bucket Cloud Storage
Sebelum melakukan operasi apa pun di Cloud Storage, Anda harus memberikan nama ke bucket. Cara termudah untuk melakukannya adalah dengan menggunakan bucket default untuk project Anda, yang dapat diperoleh sebagai berikut:
Menulis file ke Cloud Storage
Contoh berikut menunjukkan cara menulis ke bucket:
Perhatikan bahwa saat panggilan untuk open
file yang akan ditulis, contoh tersebut menentukan header Cloud Storage tertentu yang menulis metadata kustom untuk file tersebut; metadata ini dapat diambil menggunakan cloudstorage.stat
. Anda dapat menemukan daftar header yang didukung dalam referensi cloudstorage.open
.
Perhatikan juga bahwa header x-goog-acl
tidak ditetapkan. Artinya, ACL Cloud Storage default dari pembacaan publik akan diterapkan ke objek saat ditulis ke bucket.
Terakhir, perhatikan panggilan untuk close
file setelah Anda menyelesaikan penulisan. Jika Anda tidak melakukan hal ini, file tidak akan ditulis ke Cloud Storage. Perlu diketahui bahwa setelah memanggil close
, Anda tidak dapat melakukan penambahan ke file. Jika perlu mengubah file, Anda harus membuka kembali file tersebut dalam mode tulis, yang melakukan penimpaan, bukan penambahan.
Membaca file dari Cloud Storage
Contoh berikut menunjukkan cara membaca file dari bucket:
Contoh ini menunjukkan cara menampilkan baris yang dipilih dari file yang sedang dibaca, dalam hal ini, baris pembuka dan 1.000 baris terakhir, menggunakan seek
.
Perhatikan bahwa tidak ada mode yang ditentukan dalam kode di atas saat file dibuka untuk dibaca. Default untuk open
adalah mode hanya baca.
Mencantumkan konten bucket
Kode contoh menunjukkan cara menelusuri bucket yang berisi banyak file, menggunakan marker
, dan parameter max_keys
untuk menelusuri daftar konten bucket:
Perhatikan bahwa nama file lengkap ditampilkan sebagai satu string tanpa pembatas direktori.
Jika ingin menampilkan file dengan hierarki direktori yang lebih mudah dikenali, tetapkan parameter delimiter
ke pemisah direktori yang ingin Anda gunakan.
Menghapus file
Contoh kode menunjukkan penghapusan file, dalam hal ini, penghapusan semua file yang ditambahkan selama eksekusi aplikasi. Anda tidak akan melakukannya dalam kode, karena ini hanyalah fitur pembersihan dari contoh berikut:
Men-deploy contoh
Untuk men-deploy dan menjalankan contoh di App Engine:
Upload aplikasi contoh dengan menjalankan perintah berikut dari dalam direktori
python-docs-samples/appengine/standard/storage/appengine-client
tempat fileapp.yaml
berada:gcloud app deploy
Flag opsional:
- Sertakan flag
--project
untuk menentukan project ID Konsol Google Cloud alternatif dengan yang Anda inisialisasi sebagai default di gcloud CLI. Contoh:--project [YOUR_PROJECT_ID]
- Sertakan flag
-v
untuk menentukan ID versi. Jika tidak, flag tersebut akan dibuat untuk Anda. Contoh:-v [YOUR_VERSION_ID]
- Sertakan flag
Setelah proses deployment selesai, Anda dapat melihat aplikasi di
https://PROJECT_ID.REGION_ID.r.appspot.com
dengan menjalankan perintah berikut:gcloud app browse
Aplikasi
demo
dieksekusi saat pemuatan halaman, seperti yang dilakukan saat Anda menjalankannya secara lokal. Namun, sekarang aplikasi akan benar-benar menulis ke dan membaca dari bucket Cloud Storage Anda.
Untuk mempelajari lebih lanjut cara men-deploy aplikasi dari command line, lihat Men-deploy Aplikasi Python 2.
Langkah berikutnya
- Baca beberapa konsep Cloud Storage inti.
- Baca referensi fungsi library klien Cloud Storage.
- Baca referensi Class RetryParams.
- Baca referensi Penanganan Error.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.