Aplikasi sering kali harus menyajikan file statis seperti JavaScript, gambar, dan CSS, selain dari menangani permintaan dinamis. Aplikasi di lingkungan standar dapat menyajikan file statis dari opsi Google Cloud seperti Cloud Storage, menayangkannya secara langsung, atau menggunakan jaringan penayangan konten (CDN) pihak ketiga.
Biaya hosting situs statis Anda di Google Cloud lebih murah daripada penggunaan penyedia hosting tradisional, karena Google Cloud menyediakan paket gratis.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 Google Cloud CLI atau Cloud Storage API.
Library Klien Google Cloud menyediakan klien Go 1.11 ke Cloud Storage idiomatis, untuk menyimpan dan mengambil data dengan Cloud Storage di aplikasi App Engine.
Contoh inferensi dari bucket Cloud Storage
Contoh sederhana ini akan membuat bucket Cloud Storage dan mengupload aset statis menggunakan gcloud 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.
gcloud storage buckets create gs://<var>YOUR_BUCKET_NAME</var>
Tetapkan ACL untuk memberikan akses baca ke item dalam bucket.
gcloud storage buckets add-iam-policy-binding gs://<var>YOUR_BUCKET_NAME</var> --member=allUsers --role=roles/storage.objectViewer
Mengupload item ke bucket. Perintah
rsync
biasanya merupakan cara tercepat dan termudah untuk mengupload dan memperbarui aset. Anda juga dapat menggunakancp
.gcloud storage rsync ./static gs://<var>YOUR_BUCKET_NAME</var>/static --recursive
Sekarang Anda dapat mengakses aset statis melalui
https://storage.googleapis.com/<var>YOUR_BUCKET_NAME</var>/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
Agar dapat menayangkan file statis untuk Go 1.11 di lingkungan standar,
Anda dapat menentukan pengendali dalam file app.yaml
menggunakan
static_dir
atau
Elemen
static_files
.
Konten dalam file statis atau direktori statis tidak terpengaruh
oleh setelan penskalaan di file app.yaml
Anda. Permintaan ke file statis atau
direktori statis ditangani oleh infrastruktur App Engine
secara langsung, dan tidak mencapai runtime bahasa aplikasi.
Mengonfigurasi pengendali file statis
Untuk mengonfigurasi aplikasi agar menyalurkan direktori ./public
dari URL /static
,
Anda harus menetapkan pengendali dalam file app.yaml
.
Berikut ini cara menyalurkan file statis direktori
./public
aplikasi contoh. Template untuk halaman index.html
aplikasi ini
menginstruksikan browser agar memuat file main.css
, misalnya:
<link type="text/css" rel="stylesheet" href="/static/css/main.css">
Direktori ./public
ditentukan dalam elemen static_dir
dari file
app.yaml
project:
handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: /static static_dir: public - url: /.* secure: always redirect_http_response_code: 301 script: auto
Bagian handlers
pada contoh di atas menangani tiga pola URL:
Pengendali /favicon.ico memetakan permintaan khusus untuk
/favicon.ico
ke file bernamafavicon.ico
di direktori utama aplikasi.Pengendali /static memetakan permintaan untuk URL yang diawali dengan
/static
. Saat menerima permintaan untuk URL yang diawali dengan/static
, App Engine akan memetakan sisa jalur tersebut ke file dalam direktori./public
. Jika file yang sesuai ditemukan di direktori tersebut, isi file tersebut akan ditampilkan ke klien.Pengendali /.* cocok dengan semua URL lainnya dan mengarahkannya ke aplikasi Anda.
Pola jalur URL diuji sesuai urutan kemunculannya di app.yaml
, sehingga
pola untuk file statis Anda harus ditentukan sebelum pola /.*
.
Untuk informasi selengkapnya, lihat
referensi app.yaml
.
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.