Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Batas variabel lingkungan
Target yang Dihosting membatasi ukuran dan jumlah variabel lingkungan yang dapat Anda tetapkan di lingkungan runtime Target yang Dihosting.
- 1000: Panjang maksimum satu variabel lingkungan.
- 100: Jumlah maksimum variabel lingkungan yang dapat Anda tetapkan.
Untuk mengetahui informasi tentang cara menetapkan variabel lingkungan, lihat File manifes.
Variabel lingkungan yang ditetapkan dalam runtime aplikasi
Saat Anda men-deploy aplikasi Target yang Dihosting, variabel lingkungan berikut akan ditetapkan dan tersedia untuk aplikasi Anda saat runtime:
APIGEE_ENVIRONMENT
- Lingkungan tempat proxy Target yang Dihosting di-deploy.APIGEE_ORGANIZATION
- Organisasi tempat proxy Target yang Dihosting di-deploy.PORT
- Port tempat aplikasi Target yang Dihosting harus memproses.
Alokasi resource sistem
Setiap instance Target yang Dihosting menerima resource berikut:
- Memori 256 MB
- CPU 1,2 GHz
Penskalaan
Bagian ini menjelaskan cara penskalaan aplikasi Target yang Dihosting, bergantung pada jenis akun Edge yang Anda miliki.- Versi Uji Coba Apigee Edge dibatasi untuk satu instance Target yang Dihosting per proxy.
- Akun Apigee Edge berbayar menerima penskalaan otomatis berdasarkan rasio permintaan, latensi respons,
dan metrik aplikasi lainnya per proxy.
- Aplikasi Target yang Dihosting yang di-deploy ke Apigee Edge versi berbayar dan uji coba diskalakan hingga nol saat tidak aktif. Dalam hal ini, Anda mungkin melihat waktu respons yang lebih lambat untuk jangka waktu yang singkat. Lihat juga Masalah umum
File manifes
Guna mengumpulkan informasi runtime untuk mem-build dan men-deploy aplikasi yang dihosting, Edge akan mencari file manifes bernama app.yaml di direktori resources/hosts. File ini berisi informasi yang diperlukan untuk membangun dan men-deploy aplikasi Target yang Dihosting.
Sintaksis file yang paling efektif
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
Elemen file manifes
File manifes app.yaml mencakup elemen berikut:
- runtime - (Wajib) Menentukan jenis aplikasi yang Anda deploy.
Anda harus menentukan
node
. - runtimeVersion - (Opsional) Versi runtime yang digunakan aplikasi Anda. Default: Node.js LTS (v10.x). Lihat repositori resmi Docker untuk Node untuk mengetahui opsi lainnya.
- command - (Opsional) Memungkinkan Anda menentukan perintah yang akan dijalankan selain perintah default yang digunakan untuk memulai aplikasi Anda. Default:
Node.js=npm
- args - (Opsional) Array argumen command line yang akan diteruskan ke aplikasi (ditentukan dalam sintaksis array YAML standar). Biasanya, ini ditambahkan ke perintah {i>default<i}.
Defaultnya adalah start. Misalnya, secara default aplikasi Node.js akan menerima perintah
npm start
. - env - (Opsional) Array variabel lingkungan (nama/pasangan nilai) yang akan ditetapkan di lingkungan runtime Target yang Dihosting. Variabel ini tersedia untuk aplikasi Target Hosted yang Anda deploy.
- name - Nama variabel.
- value | valueRef - Anda memiliki dua opsi. Anda dapat menetapkan nilai literal atau mereferensikan nilai yang disimpan dalam Peta Nilai Kunci. Peta Nilai Kunci harus sudah ada di lingkungan Edge Anda. Lihat Bekerja dengan Peta Nilai Utama
- Jika menggunakan value, Anda harus menentukan variabel
name
danvalue
literal. Contoh:runtime: node env: - name: NODE_ENV value: production
- Jika menggunakan valueRef, Anda harus memberikan nama Key Value Map (KVM) yang sebelumnya dibuat di Edge dan sebuah kunci.
Contoh:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- Jika menggunakan value, Anda harus menentukan variabel
Contoh manifes file
Bagian ini berisi contoh file manifes untuk aplikasi Node.js. File manifes diperlukan untuk men-deploy aplikasi Target yang Dihosting, dan harus berada
di direktori apiproxy/resources/hosted
, dan nama filenya harus app.yaml
.
Berikut adalah contoh file app.yaml
(manifes) untuk aplikasi Node.js.
Contoh yang menentukan variabel lingkungan literal:
runtime: node env: - name: NODE_ENV value: production
Contoh dengan perintah awal, argumen command line, dan variabel lingkungan.
runtime: node command: ./node_modules/pm2/bin/pm2 env: - name: NODE_ENV value: production args: - app.js
Contoh yang menentukan referensi Peta Nilai Kunci (KVM):
Untuk mengetahui informasi selengkapnya tentang akses KVM, lihat File Manifes.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
Contoh aplikasi Target yang Dihosting di GitHub
Apigee menyediakan contoh proxy di GitHub dengan aplikasi Target yang Dihosting yang ditulis dalam Node.js. Anda dapat meng-clone repo ini dan mengikuti petunjuk README untuk men-deploy salah satu proxy.
Prasyarat
Untuk men-deploy sampel, Anda harus menginstal dua alat pada sistem:
- apigeetool -- Alat command line untuk men-deploy proxy Edge.
- get_token - Alat command line untuk mendapatkan token otorisasi yang diperlukan oleh apigeetool.
Jika ingin menguji contoh secara lokal, Anda juga harus menginstal Node.js.
Mendapatkan repositori sampel
- Di browser, buka https://github.com/apigee/api-platform-samples.
- Klik Clone atau download dan tarik repo ke sistem lokal Anda, menggunakan metode pilihan Anda.
- cd ke <dir instal Anda>/api-platform-samples/doc-samples/persegi-host-targets
- Setelah repo didownload, Anda dapat melakukan cd ke salah satu direktori contoh dan mengikuti petunjuk README untuk men-deploy contoh proxy ke Edge. Perintah deploy ditampilkan di bawah ini. Cukup ganti parameter yang ditunjukkan dengan parameter untuk akun Apigee Anda:
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
Contoh: Mengeksekusi aplikasi contoh
Meng-clone repositori sampel
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
Menguji aplikasi secara lokal
Anda harus menginstal Node.js untuk melakukan pengujian lokal ini.
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
Contoh output:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
Men-deploy proxy
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
Melakukan pengujian deployment
Deployment mungkin perlu waktu beberapa menit hingga selesai. Jika Anda mengalami error deployment, jalankan kembali perintah deploy.
curl http://myorg-test.apigee.net/node-hosted-hello
Contoh output:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
Masalah Umum
- Latensi Jaringan - Setelah aplikasi Node.js tidak lagi berjalan di JVM MP, sekarang ada hop jaringan antara MP dan deployment. Tentu saja hal ini memerlukan biaya, tetapi tolok ukur awal menunjukkannya dalam jumlah yang wajar
- Respons API Lambat - Infrastruktur yang menjalankan aplikasi Anda akan otomatis diskalakan berdasarkan kebutuhan. Artinya, aplikasi Anda dapat memperkecil skala hingga nol instance, dan jika itu terjadi, permintaan API berikutnya akan memerlukan waktu sedikit lebih lama daripada permintaan API biasa karena infrastruktur sedang menjalankan instance untuk memproses permintaan tersebut.
- Error deployment - Jika Anda menerima error deployment saat men-deploy proxy Target yang Dihosting, coba deploy ulang proxy. Dalam beberapa kasus, waktu tunggu deployment dapat habis dan jika Anda men-deploy ulang, masalahnya akan teratasi dengan sendirinya.