Tutorial Target yang Dihosting

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Tutorial berikut menjelaskan cara men-deploy aplikasi Node.js ke Edge menggunakan Target yang Dihosting, yaitu lingkungan runtime Node.js native yang dihosting oleh Apigee.

Tutorial ini membahas tugas-tugas berikut:

  • Men-deploy aplikasi Node.js ke Target yang Dihosting menggunakan UI Edge.
  • Men-deploy aplikasi Node.js ke Target yang Dihosting dari mesin pengembangan lokal Anda.
  • Memigrasikan proxy yang ada dengan implementasi target Edge Node.js tradisional ke Target yang Dihosting.

Men-deploy aplikasi Node.js ke Target yang Dihosting menggunakan UI Edge

Dalam tutorial ini, Anda akan men-deploy aplikasi Node.js sederhana ke Hosted Targets menggunakan UI Edge. Setelah menyelesaikan tutorial ini, Anda akan memahami struktur dan konten dasar proxy Target yang Dihosting serta cara mengakses file log deployment dan build.

Login

  1. Buka: apigee.com/edge
  2. Masukkan kredensial login Apigee Anda untuk login.

Membuat proxy baru

  1. Di menu navigasi samping, pilih Develop > API Proxies.
  2. Klik + Proxy.
  3. Di halaman Buat Proxy, pilih Target yang Dihosting.
  4. Klik Berikutnya.
  5. Di kolom Nama Proxy, masukkan hello-hosted-targets.
  6. Pastikan Sampel "Hello World" dipilih.
  7. Klik Berikutnya.
  8. Di halaman Keamanan, pilih Lewati (tidak ada) untuk Otorisasi.
  9. Klik Berikutnya.
  10. Klik Berikutnya.
  11. Di halaman Build, pastikan lingkungan test dipilih. Perhatikan bahwa Jenis Proxy adalah Target yang Dihosting.
  12. Klik Build and Deploy. Mungkin perlu waktu beberapa saat hingga deployment proxy selesai.
  13. Setelah proxy berhasil di-deploy, klik Lihat proxy hello-hosted-targets di bagian bawah halaman.
  14. Memanggil proxy API. Cara termudah untuk melakukannya adalah dengan membuka tab Trace, memulai sesi Trace, dan mengklik Kirim. Anda akan menerima status 200 dengan respons berikut:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Memeriksa proxy

  1. Di UI Edge, klik tab Develop.
  2. Di Navigator, pilih default di bagian Endpoint Target.
  3. Dalam editor kode, perhatikan bahwa ada elemen turunan <HostedTarget/> yang kosong di bawah elemen <TargetEndpoint>. Tag kosong ini wajib diisi. Ini memberi tahu Edge bahwa target proxy adalah aplikasi yang di-deploy ke lingkungan Hosted Targets.

  4. Di Navigator, perhatikan konten di bagian Skrip. File aplikasi Node.js tercantum pada label dihosting.

  5. Di UI Edge, periksa file yang tercantum pada dihosting di Skrip:
    • File app.yaml berisi informasi konfigurasi. Misalnya, Anda dapat menambahkan variabel lingkungan yang akan tersedia untuk aplikasi Node.js saat runtime. Anda tidak perlu mengubah file ini untuk contoh ini.
    • File index.js adalah file utama aplikasi Node.js.
    • Jika aplikasi Anda memiliki dependensi modul, dependensi tersebut harus dicantumkan dalam package.json.

Melihat file log

File log aplikasi dapat berguna untuk men-debug masalah yang terjadi selama fase build dan juga saat runtime.

  1. Di UI Edge, klik tab Develop.
  2. Untuk melihat log build, klik Build Logs.
  3. Untuk melihat log deployment, klik Runtime Logs.

    Lihat juga Mengakses file log.

Ringkasan

  • Anda telah men-deploy aplikasi Node.js sederhana ke lingkungan Target yang Dihosting dan mengujinya di UI Edge.
  • Anda telah mempelajari bahwa proxy Target yang Dihosting memerlukan tag kosong khusus di Endpoint Target yang disebut <HostedTarget/>.
  • Anda telah mempelajari bahwa Edge memuat dependensi modul untuk Anda secara otomatis, dan dependensi tersebut harus dicantumkan dalam file package.json.
  • Anda juga telah mempelajari cara memeriksa file log build dan runtime.

Men-deploy Node.js dari sistem Anda ke Edge

Bagian ini menjelaskan cara men-deploy aplikasi Node.js mandiri dari sistem lokal Anda ke Target yang Dihosting menggunakan apigeetool. Utilitas apigeetool menggabungkan aplikasi Node.js ke dalam proxy Hosted Targets baru dan men-deploy-nya ke Edge.

Menginstal apigeetool

Penggunaan apigeetool adalah cara yang direkomendasikan bagi developer untuk men-deploy kode proxy ke Edge. Untuk menginstal apigeetool, jalankan perintah NPM berikut:

npm install -g apigeetool

Membuat aplikasi Node.js

Untuk mempermudah, kode untuk aplikasi Node.js sederhana disediakan untuk Anda.

  1. Buat direktori untuk aplikasi Node.js. Beri nama direktori node-hosted-express.
  2. cd ke direktori baru.
  3. Buat file bernama index.js, lalu salin kode ini ke dalamnya.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. Buat file bernama package.json, lalu salin kode ini ke dalamnya. Perhatikan bahwa modul Express tercantum sebagai dependensi.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. Buat file bernama app.yaml, lalu salin kode ini ke dalamnya:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Pastikan direktori Anda terlihat seperti ini:
    ls
    app.yaml index.js package.json
    

Peninjauan struktur direktori yang diperlukan untuk kode aplikasi

Aplikasi Node.js Anda harus memiliki struktur yang sama dengan aplikasi Node.js standar. Namun, pastikan Anda telah mengikuti persyaratan ini sebelum men-deploy dengan apigeetool ke Edge:

  • File manifes app.yaml diperlukan dan harus ada di direktori root aplikasi Anda. Untuk mempelajari file ini lebih lanjut, lihat file manifes.
  • File package.json diperlukan. File ini harus mencantumkan dependensi apa pun yang diperlukan aplikasi Anda.
  • Folder node_modules tidak diperlukan. Edge menjalankan npm install untuk Anda saat aplikasi Node.js di-deploy. Class ini mendapatkan dependensi dari package.json. Satu-satunya waktu Anda yang perlu menyediakan node_modules secara eksplisit adalah jika Anda memiliki modul kustom yang tidak tersedia melalui npm.

Men-deploy proxy

  1. Di terminal, klik cd ke direktori root aplikasi Node.js Anda.
  2. Jalankan apigeetool dengan perintah deployhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    dengan -n adalah nama yang ingin Anda berikan ke proxy baru. Nama pengguna harus unik dalam organisasi. Karakter yang boleh Anda gunakan dalam nama dibatasi untuk hal berikut: a-z0-9._\-$%

    Contoh:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    Untuk informasi selengkapnya tentang penggunaan apigeetool, lihat https://github.com/apigee/apigeetool-node.

Menguji proxy

Anda dapat menguji proxy dengan perintah cURL, dengan klien REST seperti Postman, atau di UI Edge pada alat Trace. Berikut adalah contoh perintah cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Mendapatkan Log Build

Log build menampilkan output terkait deployment dan pembuatan aplikasi Node.js. Lihat juga File log.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Contoh:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Mendapatkan Log Runtime

Log runtime menampilkan output yang terkait dengan aplikasi yang sedang berjalan. Log runtime tercakup dalam lingkungan dan menampilkan log untuk revisi proxy yang saat ini di-deploy. Lihat juga File log.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Contoh:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Melihat proxy di UI Edge

Setelah deployment berhasil, Anda dapat melihat dan mengedit proxy di bagian Proxy API pada UI Edge.

Memigrasikan proxy Node.js yang ada ke proxy Target yang Dihosting

Bagian ini menjelaskan cara memigrasikan proxy Edge API yang ada secara manual, yang menggunakan implementasi target Node.js tradisional ke Target yang Dihosting. Panduan ini juga menjelaskan cara men-deploy proxy setelah Anda melakukan langkah-langkah migrasi.

Langkah-langkah migrasi mempertahankan struktur, kebijakan, alur, dan elemen konfigurasi proxy API lainnya. Anda dapat melakukan migrasi dalam empat langkah, seperti yang diuraikan di bawah, lalu men-deploy proxy yang dimigrasikan dengan apigeetool.

Langkah 1: Sesuaikan struktur file proxy

Untuk menyesuaikan struktur file, proxy API harus ada di sistem file lokal Anda. Jika proxy di-deploy di Edge, Anda harus mendownloadnya sebelum melanjutkan. Dalam konfigurasi tradisional, dan &quot;paket&quot; proxy Edge yang menyertakan kode Node.js mengikuti struktur file ini. Kode aplikasi Node.js ditempatkan di direktori resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


Untuk Target yang Dihosting, Anda harus menempatkan direktori utama aplikasi Node.js Anda di direktori bernama resources/hosted. Cukup buat direktori baru yang disebut resources/hosts dan pindahkan konten resources/node ke dalamnya. Kemudian, Anda dapat menghapus direktori resources/node.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

Langkah 2: Tambahkan file manifes

Buat file manifes bernama app.yaml dan tempatkan di direktori apiproxy/resources/hosted.

Berikut adalah contoh file app.yaml. Perintah ini menentukan bahwa runtime-nya adalah Node.js (wajib). Tindakan ini juga membuat variabel lingkungan di lingkungan eksekusi (variabel yang dapat diakses oleh aplikasi Node.js). Variabel lingkungan bersifat opsional dan hanya ditampilkan di sini sebagai contoh. Untuk mengetahui detail dan contoh selengkapnya, lihat File manifes.

runtime: node
  env:
    - name: NODE_ENV
      value: production


Contoh berikut menunjukkan struktur project Node.js yang berada di lokasi yang benar dalam deployment Proxy untuk Target Berhosting:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Langkah 3: Pastikan Anda memiliki file package.json

Di proxy Node.js Edge tradisional, package.json bersifat opsional. Namun, untuk Target yang Dihosting, Anda harus menyediakannya di direktori apiproxy/resources/hosted. Pastikan untuk menentukan dependensi yang diperlukan untuk aplikasi Anda dalam file ini.

Langkah 4: Ubah endpoint target proxy

Proxy Node.js tradisional mewajibkan tag bernama <ScriptTarget> ada dalam file endpoint target (biasanya /apiproxy/targets/default.xml). Untuk Target yang Dihosting, Anda perlu menambahkan tag kosong bernama <HostedTarget/>. Jika ada tag ScriptTarget dalam file, Anda cukup menghapusnya. Contoh:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Men-deploy proxy

Sekarang Anda dapat men-deploy proxy menggunakan perintah apigeetool deployproxy.

  1. cd ke direktori root proxy Anda: /apiproxy
  2. Gunakan perintah ini untuk men-deploy proxy:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Contoh:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

Untuk informasi selengkapnya tentang penggunaan apigeetool, lihat: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Menguji proxy

Anda dapat menguji proxy dengan perintah cURL, dengan klien REST seperti Postman, atau di UI Edge pada alat Trace. Berikut adalah contoh perintah cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!