Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Membatalkan deployment proxy Target yang Dihosting
Saat Anda membatalkan deployment proxy Edge yang menyertakan aplikasi Hosted Targets, Aplikasi Target yang Dihosting tidak di-deploy, tetapi image aplikasi yang mendasarinya tidak dihapus. Jika Anda men-deploy ulang proxy, aplikasi Target yang Dihosting di-deploy ulang.
Menghapus proxy Target yang Dihosting
Setelah Anda menghapus proxy Target yang Dihosting, instance runtime yang mendasarinya akan berhenti berjalan dalam beberapa waktu. Namun, kode aplikasi akan tetap ada.
Mengakses file log
File log berguna untuk proses debug dan pemecahan masalah. Anda dapat melihat dua jenis file log untuk deployment Target yang Dihosting:
- Log build - Menampilkan output terkait deployment dan pembuatan aplikasi Target yang Dihosting.
- Log runtime - Menampilkan output terkait aplikasi Target yang Dihosting dan yang sedang berjalan. Log runtime tercakup dalam lingkungan dan menampilkan informasi log untuk revisi proxy yang saat ini di-deploy.
Mengakses log dari UI Edge
- Buka: apigee.com/edge
- Masukkan kredensial login Anda, lalu klik Login.
- Pilih Develop > Proxy API di menu navigasi samping.
- Pilih proxy yang lognya ingin Anda lihat.
- Klik tab Develop.
- Untuk melihat log build, klik Build Logs.
- Untuk melihat log runtime, klik Runtime Logs.
Mengakses log dengan API
Anda juga dapat menggunakan Edge API untuk mengambil log Target yang Dihosting. Untuk mengetahui detailnya, lihat Dapatkan Log Node.js yang Di-Cache.
Menggunakan repositori npm pribadi
Bagian ini menjelaskan cara men-deploy proxy Node.js ke Target yang Dihosting jika Anda gunakan repositori NPM pribadi di lingkungan pengembangan Anda.
Yang perlu Anda ketahui tentang menggunakan repositori pribadi
Saat Anda men-deploy aplikasi Node.js ke Edge, semua dependensi project Anda akan diimpor secara otomatis
sebagai bagian dari proses deployment.
Pada dasarnya, Target yang Dihosting menjalankan npm install
pada kode Anda saat di-deploy.
Namun, jika Anda menggunakan repositori NPM pribadi di lingkungan pengembangan Anda,
dependensi tidak dapat diselesaikan di Cloud. Di beberapa
dalam hal ini, solusinya adalah menggunakan opsi --bundled-dependencies
saat Anda menggunakan
utilitas deployment apigeetool. Lihat juga
Deploy Node.js dari sistem Anda ke Edge.
Saat Anda menggunakan flag --bundled-dependencies
di apigeetool
,
Aplikasi Node.js akan diupload ke Hosted Targets dan file lokal/pribadi apa pun yang tercantum
dalam array bundledDependencies
di package.json
di-zip dan diupload dengan paket.
Meskipun bukan situasi umum, perhatikan bahwa jika Anda mencerminkan repositori NPM publik secara internal, deployment Anda akan gagal
jika paket deployment Anda mencakup file .npmrc
atau package-lock.json
yang mengarah
ke cermin pribadi Anda. Dalam kasus ini, pastikan untuk menghilangkan .npmrc
atau package-lock.json
dari paket proxy yang
ingin Anda deploy.
Men-deploy dengan repositori NPM pribadi
Untuk menggunakan modul yang disediakan dari repositori NPM pribadi, ikuti langkah-langkah berikut:
- Login ke npm:
npm login
- Dapatkan token autentikasi npm:
- Temukan .npmrc Anda (seharusnya di ~/.npmrc).
- Di .npmrc Anda, catat token di akhir baris yang terlihat seperti ini:
//registry.npmjs.org/:_authToken=****
- Atau gunakan perintah
npm token <list | create | revoke>
untuk menampilkan daftar, membuat, atau mencabut token auth. Lihat npm-token dokumentasi lain untuk mengetahui detail selengkapnya. - Akses halaman konfigurasi Key Value Maps, seperti yang dijelaskan di bawah ini.
Edge
Untuk mengakses halaman konfigurasi Key Value Maps menggunakan UI Edge:
- Login ke apigee.com/edge.
- Pilih Admin > Lingkungan > Key Value Maps di menu navigasi sebelah kiri.
Edge Klasik (Private Cloud)
Untuk mengakses halaman konfigurasi Key Value Maps menggunakan UI Classic Edge:
- Login ke
http://ms-ip:9000
, dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan. - Pilih API > Konfigurasi Lingkungan > Peta Nilai Kunci di menu navigasi atas.
- Klik + Peta Nilai Kunci.
- Dalam dialog New Key Value Map, masukkan nama dan pilih Encrypted.
- Klik Tambahkan.
- Tambahkan token auth yang sebelumnya Anda temukan atau buat sebagai entri baru di setiap KVM yang baru saja Anda buat.
- Di file app.yaml Anda, tambahkan entri yang merujuk ke KVM dan kunci yang terkait dengan token autentikasi npm. Ini akan terlihat seperti berikut:
- Atribut name tingkat teratas sesuai dengan nama lingkungan variabel yang akan dibuat.
- name di bagian valueRef sesuai dengan KVM yang buat sebelumnya.
- Atribut key sesuai dengan kunci yang dipetakan ke token npm yang Anda ditambahkan ke KVM.
- Buat file .npmrc di direktori yang sama dengan package.json Anda. Ini
akan tampak seperti ini:
atau jika tidak menggunakan//registry.npmjs.org/:_authToken=${NPM_TOKEN}
registry.npmjs.org
, Anda dapat menetapkan cakupan di file .npmrc dengan menambahkan baris seperti@myscope:registry=https://mycustomregistry.example.org
ini Lihat juga dokumentasi npmrc. - Upload atau update proxy Node.js Anda dengan menyertakan file .npmrc dan file app.yaml.
- Pastikan proxy baru atau yang diperbarui men-deploy dan berfungsi dengan repositori pribadi yang diinginkan ruang lingkup modul ini.
- Jika proxy tidak di-deploy, periksa log build untuk melihat apakah proxy gagal menginstal modul npm pribadi. Jika ya:
- Pada tab pengembangan, pastikan .npmrc ada.
- Pastikan token Anda valid (coba instal modul secara lokal dengan token yang tersedia di kvm).
- Jika Anda menggunakan cakupan kustom, pastikan cakupan kustom telah ditetapkan.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_token
Dengan keterangan:
Menentukan versi NPM untuk dependensi yang dipaketkan
Secara default, NPM v4 digunakan untuk menginstal dependensi yang dipaketkan di lingkungan Target yang Dihosting.
Namun, jika ingin menggunakan versi NPM yang berbeda, Anda dapat menentukannya di NPM_VERSION
variabel lingkungan. Anda dapat menetapkan variabel ini dalam file manifes aplikasi. Lihat Elemen file manifes untuk mengetahui detailnya.
Jika Anda menggunakan dependensi yang dipaketkan, dan jika Anda tidak menentukan NPM_VERSION
, Target yang Dihosting
menggunakan NPM v4 secara default. Jika Anda tidak menggunakan dependensi yang dipaketkan, versi NPM yang disertakan
dalam runtime Node.js yang ditentukan akan digunakan.
Contoh paket dependensi
Untuk contoh yang menunjukkan fitur dependensi yang dipaketkan dengan Target yang Dihosting, lihat Cara membuat aplikasi Node.js dengan Fungsi yang Dihosting menggunakan modul kustom.Menambahkan endpoint health check
Anda memiliki opsi untuk menerapkan endpoint health check untuk aplikasi Node.js. Apigee menggunakan endpoint ini saat Aplikasi Node.js mulai memeriksa apakah aplikasi sudah aktif dan berjalan di container.
Secara default, endpoint yang diharapkan Apigee adalah /health
. Anda dapat mengubah setelan
endpoint, dengan menentukan endpoint di variabel lingkungan bernama
HOSTED_TARGET_HEALTH_CHECK_PATH
. Anda dapat menetapkan variabel ini dalam manifes aplikasi
. Lihat Elemen file manifes untuk mengetahui detailnya.
Menerapkan endpoint health check tidak diperlukan. Namun, jika Anda menerapkan health check endpoint, perhatikan hal-hal berikut:
- Jika aplikasi Anda keluar saat Apigee mencapai endpoint, aplikasi tidak akan dimulai seperti yang diharapkan.
- Tidak masalah jika endpoint Anda menampilkan status HTTP 404 Not Found.
/health
atauHOSTED_TARGET_HEALTH_CHECK_PATH
hanya digunakan untuk memeriksa apakah aplikasi Anda berjalan. Respons sebenarnya akan diabaikan.
Mengubah lokasi cache NPM
Versi Node.js yang lebih baru menggunakan versi NPM yang menggunakan /root/.npm
untuk cache NPM.
Lokasi ini menimbulkan masalah bagi Target yang Dihosting karena lokasi direktori tersebut hanya-baca
karena runtime Target yang Dihosting menggunakan sistem file tmpfs, di mana hanya /tmp
yang dapat ditulis.
Untuk mengatasi masalah ini, Anda dapat menetapkan variabel lingkungan npm_config_cache
di
aplikasi Anda
File app.yaml
(file manifes)
ke direktori dalam /tmp
. Contoh:
runtime: node application: my-express-app env: - name: npm_config_cache value: /tmp/.npm - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Menjalankan aplikasi tanpa NPM
Secara default, Target yang Dihosting menggunakan npm start
untuk menjalankan aplikasi Target yang Dihosting. Tapi
di tugas sebelumnya kita telah membahas masalah penggunaan
NPM karena versi yang lebih baru akan mencoba
/root/.npm
untuk cache NPM, yang tidak dapat ditulis dan menghasilkan Target yang Dihosting
gagal dimulai. Sementara tugas sebelumnya akan menyelesaikan masalah ini, pilihan lain adalah
menjalankan aplikasi Anda tanpa NPM. Untuk melakukannya, Anda dapat menggunakan command
dan
args
nilai dalam atribut
File app.yaml
(file manifes)
untuk menjalankan Target yang Dihosting secara langsung menggunakan node index.js
. Contoh:
runtime: node application: my-express-app command: node args: - index.js env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
node index.js
hanyalah
contoh.