Aplikasi sering kali harus menyajikan file statis seperti JavaScript, image, dan CSS, selain menangani permintaan dinamis. Aplikasi di lingkungan fleksibel dapat menyajikan file statis dari opsi Google Cloud seperti Cloud Storage, menyajikannya secara langsung, atau menggunakan jaringan penayangan konten (CDN) pihak ketiga.
Menyajikan file dari Cloud Storage
Cloud Storage dapat menghosting aset statis untuk aplikasi web dinamis. Manfaat menggunakan Cloud Storage daripada menyajikan langsung dari aplikasi Anda meliputi:
- Cloud Storage pada dasarnya berfungsi sebagai jaringan penayangan konten (CDN). Hal ini tidak memerlukan konfigurasi khusus karena secara default objek yang dapat dibaca secara publik akan disimpan dalam cache di jaringan Cloud Storage global.
- Muatan aplikasi Anda akan dikurangi dengan mengurangi beban aset statis ke Cloud Storage. Bergantung pada jumlah aset statis yang Anda miliki dan frekuensi aksesnya, hal ini dapat mengurangi biaya menjalankan aplikasi dengan jumlah yang signifikan.
- Biaya bandwidth untuk mengakses konten sering kali lebih murah dengan Cloud Storage.
Anda dapat mengupload aset ke Cloud Storage menggunakan alat command line gsutil
atau Cloud Storage API.
Library Klien Google Cloud menyediakan klien ke Cloud Storage idiomatis, untuk menyimpan dan mengambil data dengan Cloud Storage di aplikasi App Engine.
Contoh penyajian dari bucket Cloud Storage
Contoh sederhana ini akan membuat bucket Cloud Storage dan mengupload aset statis menggunakan Google Cloud CLI:
Membuat bucket. Memberi nama bucket yang sama dengan ID project Anda adalah hal yang umum, tetapi tidak wajib. Nama bucket harus unik secara global.
gsutil mb gs://<your-bucket-name>
Tetapkan ACL untuk memberikan akses baca ke item dalam bucket.
gsutil defacl set public-read gs://<your-bucket-name>
Mengupload item ke bucket. Perintah
rsync
biasanya merupakan cara tercepat dan termudah untuk mengupload dan memperbarui aset. Anda juga dapat menggunakancp
.gsutil -m rsync -r ./static gs://<your-bucket-name>/static
Sekarang Anda dapat mengakses aset statis melalui
https://storage.googleapis.com/<your-bucket-name>/static/...
.
Untuk detail selengkapnya tentang cara menggunakan Cloud Storage untuk menyalurkan aset statis, termasuk cara menyajikan aset dari nama domain kustom, lihat Cara Menghosting Situs Statis.
Menyajikan file dari layanan Google Cloud lainnya
Anda juga memiliki opsi untuk menggunakan Cloud CDN atau layanan penyimpanan Google Cloud lainnya.
Menyajikan file langsung dari aplikasi Anda
Menyajikan file dari aplikasi biasanya mudah dilakukan, tetapi ada beberapa kelemahan yang harus Anda pertimbangkan:
- Permintaan file statis dapat menggunakan resource yang akan digunakan untuk permintaan dinamis.
- Bergantung pada konfigurasi Anda, menyajikan file dari aplikasi dapat menghasilkan latensi respons, yang juga dapat memengaruhi kapan instance baru dibuat untuk menangani muatan.
Contoh penyajian file statis dengan aplikasi Anda
Go
Contoh berikut menunjukkan cara menyajikan file statis dengan aplikasi Anda untuk
runtime Go versi 1.15 dan yang lebih lama, serta versi 1.18 dan yang lebih baru. Perlu diperhatikan bahwa
Anda harus mengupdate app.yaml
untuk menggunakan versi baru. Lihat
runtime Go untuk mengetahui informasi selengkapnya
tentang penggunaan runtime baru.
Anda dapat menggunakan http.FileServer
atau http.ServeFile
standar untuk menyajikan file langsung dari aplikasi.
v1.18 dan yang lebih baru
v1.15 dan yang lebih lama
Java
Contoh berikut menunjukkan cara menyajikan file statis dengan aplikasi Anda untuk
runtime Java versi 8 dan versi 11/17. Perlu diperhatikan bahwa
Anda harus mengupdate app.yaml
untuk menggunakan versi baru. Lihat
runtime Java untuk mengetahui informasi
selengkapnya tentang cara menggunakan runtime baru.
Container servlet runtime Java akan menggunakan deployment descriptor,
file web.xml
, untuk memetakan URL ke servlet, termasuk aset statis. Jika Anda tidak
menentukan web.xml
, default akan digunakan yang memetakan semuanya ke servlet
default.
Dalam contoh ini, ./src/main/webapp/index.html
merujuk pada stylesheet yang disajikan
dari /stylesheets/styles.css
.
versi 11/17
versi 8
File styles.css
terletak di ./src/main/webapp/stylesheets/styles.css
.
Anda dapat secara eksplisit mengonfigurasi cara penanganan file statis di file web.xml
.
Misalnya, jika Anda ingin memetakan permintaan untuk semua file yang memiliki ekstensi .jpg
:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
Jika menggunakan framework web, seperti Play, Anda harus melihat dokumentasi framework tentang aset statis.
Node.js
Contoh berikut menunjukkan cara menyajikan file statis dengan aplikasi Anda untuk runtime Node.js versi 16 dan yang lebih lama, serta versi 18 dan yang lebih baru. Perlu diperhatikan bahwa
Anda harus mengupdate app.yaml
untuk menggunakan versi baru. Baca runtime Node.js untuk mengetahui informasi selengkapnya tentang cara menggunakan runtime baru.
Sebagian besar framework web menyertakan dukungan untuk menyajikan file statis. Dalam contoh ini,
aplikasi menggunakan
middleware express.static
untuk menyajikan file dari direktori ./public
ke URL /static
.
Tampilan ini mengacu ke /static/main.css
.
Stylesheet itu sendiri berada di ./public/css
, yang disajikan dari
/static/main.css
.
Framework Node.js lainnya, seperti Hapi, Koa, dan Sails biasanya mendukung penyajian file statis langsung dari aplikasi. Lihat dokumentasinya untuk mengetahui detail tentang cara mengonfigurasi dan menggunakan konten statis.
PHP
Runtime PHP menjalankan nginx untuk menyajikan aplikasi Anda, yang dikonfigurasi untuk menyajikan file statis di direktori project Anda. Anda harus mendeklarasikan root dokumen dengan menentukan document_root
dalam file app.yaml
Anda:
Python
Contoh berikut menunjukkan cara menyajikan file statis dengan aplikasi Anda untuk runtime Python versi 3.7 dan yang lebih lama. Untuk Python versi 3.8 dan yang lebih baru, lihat runtime Python untuk mengetahui informasi selengkapnya tentang cara menggunakan versi yang lebih baru.
Sebagian besar framework web menyertakan dukungan untuk menyajikan file statis. Dalam contoh ini, aplikasi menggunakan kemampuan bawaan Flask untuk menyajikan file dalam direktori ./static
dari URL /static
.
Aplikasi menyertakan tampilan yang merender template. Flask secara otomatis
menyajikan semua yang ada di direktori ./static
tanpa konfigurasi tambahan.
Template yang dirender oleh tampilan menyertakan stylesheet yang terletak di
/static/main.css
.
Stylesheet terletak di ./static/main.css
.
Framework Python lainnya, seperti Django, Pyramid, dan Bottle biasanya mendukung penyajian file statis langsung dari aplikasi. Lihat dokumentasinya untuk mengetahui detail tentang cara mengonfigurasi dan menggunakan konten statis.
Ruby
Sebagian besar framework web menyertakan dukungan untuk menyajikan file statis.
Contoh berikut menunjukkan cara menyajikan file statis dengan aplikasi Anda untuk runtime Ruby versi 3.1 dan yang lebih lama, serta versi 3.2. Perhatikan bahwa
Anda harus mengupdate file app.yaml
untuk menggunakan versi baru. Lihat
runtime Ruby untuk mengetahui informasi
selengkapnya tentang cara menggunakan runtime baru.
Sinatra
Framework web Sinatra
menyajikan file dari direktori ./public
secara default. Aplikasi
ini menyertakan tampilan yang mengacu ke /application.css
.
Stylesheet terletak di ./public/application.css
yang disajikan
dari /application.css
.
Ruby di Rails
Framework web Ruby di Rails
menyajikan file dari direktori ./public
secara default. File
JavaScript dan CSS statis juga dapat dibuat oleh pipeline
aset Rails.
Aplikasi contoh ini berisi tampilan tata letak yang menyertakan semua stylesheet aplikasi:
versi 3.2
versi 3.1 dan yang lebih lama
versi 3.2
Stylesheet itu sendiri adalah file .css
yang terletak di ./public/application.css
.
versi 3.1 dan yang lebih lama
Stylesheet itu sendiri adalah
file Sass yang terletak
di ./app/assets/stylesheets/main.css.sass
.
Secara default, aplikasi Rails tidak membuat atau menyajikan aset statis saat berjalan dalam produksi.
Runtime Ruby mengeksekusi rake assets:precompile
selama deployment untuk menghasilkan aset statis dan menetapkan variabel lingkungan RAILS_SERVE_STATIC_FILES
untuk mengaktifkan file statis yang disajikan dalam produksi.
.NET
Contoh berikut menunjukkan cara menayangkan file statis dengan aplikasi Anda untuk
.NET runtime versi 3.1 dan yang lebih lama, serta versi 6 dan yang lebih baru. Perhatikan bahwa
Anda harus mengupdate file app.yaml
untuk menggunakan versi baru. Lihat
runtime .NET untuk mengetahui informasi
selengkapnya tentang cara menggunakan runtime baru.
versi 6 dan yang lebih baru
Untuk mengaktifkan penyajian file statis, tambahkan:
versi 3.1 dan yang lebih lama
Untuk mengaktifkan penyajian file statis, tambahkan:
Menyajikan dari jaringan penayangan konten (CDN) pihak ketiga
Anda dapat menggunakan CDN pihak ketiga eksternal untuk menyajikan file statis dan meng-cache permintaan dinamis, tetapi aplikasi Anda mungkin mengalami peningkatan latensi dan biaya.
Untuk meningkatkan performa, Anda harus menggunakan CDN pihak ketiga yang mendukung CDN Interconnect.