Hướng dẫn về mục tiêu được lưu trữ

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Các hướng dẫn sau đây giải thích cách triển khai các ứng dụng Node.js lên Edge bằng Hosted Targets (Mục tiêu được lưu trữ), một môi trường thời gian chạy Node.js gốc do Apigee lưu trữ.

Các hướng dẫn này sẽ hướng dẫn bạn thực hiện những việc sau:

  • Triển khai ứng dụng Node.js lên Hosted Targets bằng giao diện người dùng Edge.
  • Triển khai ứng dụng Node.js vào Hosted Targets từ máy phát triển cục bộ.
  • Di chuyển một proxy hiện có bằng triển khai mục tiêu Edge Node.js truyền thống sang Hosted Targets.

Triển khai ứng dụng Node.js lên Hosted Targets bằng giao diện người dùng Edge

Trong hướng dẫn này, bạn sẽ triển khai một ứng dụng Node.js đơn giản vào Hosted Targets bằng giao diện người dùng Edge. Khi hoàn tất hướng dẫn này, bạn sẽ hiểu được cấu trúc và nội dung cơ bản của một proxy Hosted Targets cũng như cách truy cập vào các tệp nhật ký triển khai và bản dựng.

Đăng nhập

  1. Truy cập vào: apigee.com/edge
  2. Nhập thông tin đăng nhập Apigee để đăng nhập.

Tạo một proxy mới

  1. Trong trình đơn điều hướng bên, hãy chọn Phát triển > API Proxy.
  2. Nhấp vào + Proxy.
  3. Trong trang Create Proxy (Tạo proxy), hãy chọn Hosted Target (Mục tiêu được lưu trữ).
  4. Nhấp vào Tiếp theo.
  5. Trong trường Tên proxy, hãy nhập hello-hosted-targets.
  6. Nhớ chọn Mẫu"Hello World".
  7. Nhấp vào Tiếp theo.
  8. Trong trang Bảo mật, hãy chọn Truyền qua (không có) cho phần Uỷ quyền.
  9. Nhấp vào Tiếp theo.
  10. Nhấp vào Tiếp theo.
  11. Trong trang Bản dựng, hãy nhớ chọn môi trường thử nghiệm. Lưu ý rằng Loại proxy là Mục tiêu được lưu trữ.
  12. Nhấp vào Build and Deploy (Tạo và triển khai). Quá trình triển khai proxy có thể mất vài phút.
  13. Sau khi triển khai thành công proxy, hãy nhấp vào Xem proxy hello-hosted-targets ở cuối trang.
  14. Gọi proxy API. Cách dễ nhất để thực hiện việc này là chuyển đến thẻ Trace (Dấu vết), bắt đầu một phiên Trace (Dấu vết) rồi nhấp vào Send (Gửi). Bạn sẽ nhận được trạng thái 200 kèm theo phản hồi sau:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Kiểm tra proxy

  1. Trong giao diện người dùng Edge, hãy nhấp vào thẻ Phát triển.
  2. Trong Trình điều hướng, hãy chọn default trong Target Endpoints (Điểm cuối mục tiêu).
  3. Trong trình chỉnh sửa mã, hãy lưu ý rằng có một phần tử con <HostedTarget/> trống bên dưới phần tử <TargetEndpoint>. Bạn phải có thẻ trống này. Nó cho Edge biết rằng mục tiêu của proxy là một ứng dụng được triển khai cho môi trường Hosted Targets.

  4. Trong Trình điều hướng, hãy lưu ý nội dung trong phần Scripts (Tập lệnh). Các tệp ứng dụng Node.js được liệt kê trong nhãn được lưu trữ.

  5. Trong giao diện người dùng Edge, hãy kiểm tra các tệp được liệt kê trong mục hosted (được lưu trữ) trong Scripts (Tập lệnh):
    • Tệp app.yaml chứa thông tin cấu hình. Ví dụ: bạn có thể thêm các biến môi trường sẽ có sẵn cho ứng dụng Node.js tại thời gian chạy. Bạn không cần sửa đổi tệp này cho ví dụ này.
    • Tệp index.js là tệp chính của ứng dụng Node.js.
    • Nếu ứng dụng của bạn có bất kỳ phần phụ thuộc nào của mô-đun, thì các phần phụ thuộc đó phải được liệt kê trong package.json.

Xem tệp nhật ký

Tệp nhật ký ứng dụng có thể hữu ích cho việc gỡ lỗi các vấn đề xảy ra trong giai đoạn xây dựng và cả trong thời gian chạy.

  1. Trong giao diện người dùng Edge, hãy nhấp vào thẻ Phát triển.
  2. Để xem nhật ký bản dựng, hãy nhấp vào Build Logs (Nhật ký bản dựng).
  3. Để xem nhật ký triển khai, hãy nhấp vào Nhật ký thời gian chạy.

    Xem thêm Truy cập vào tệp nhật ký.

Tóm tắt

  • Bạn đã triển khai một ứng dụng Node.js đơn giản vào môi trường Hosted Targets và thử nghiệm ứng dụng đó trong Giao diện người dùng Edge.
  • Bạn biết rằng một proxy Hosted Targets yêu cầu một thẻ trống đặc biệt trong Target Endpoint có tên là <HostedTarget/>.
  • Bạn đã biết rằng Edge tự động tải các phần phụ thuộc của mô-đun cho bạn và các phần phụ thuộc phải được liệt kê trong tệp package.json.
  • Bạn cũng đã tìm hiểu cách kiểm tra các tệp nhật ký bản dựng và thời gian chạy.

Triển khai Node.js từ hệ thống của bạn đến Edge

Phần này giải thích cách triển khai một ứng dụng Node.js độc lập từ hệ thống cục bộ đến Hosted Targets bằng apigeetool. Tiện ích apigeetool sẽ kết hợp ứng dụng Node.js vào một proxy Hosted Targets mới và triển khai ứng dụng đó đến Edge.

Cài đặt apigeetool

Nhà phát triển nên sử dụng apigeetool để triển khai mã proxy cho Edge. Để cài đặt apigeetool, hãy chạy lệnh NPM sau:

npm install -g apigeetool

Tạo ứng dụng Node.js

Để đơn giản hoá, chúng tôi sẽ cung cấp cho bạn mã của một ứng dụng Node.js đơn giản.

  1. Tạo một thư mục cho ứng dụng Node.js. Gọi thư mục node-hosted-express.
  2. cd đến thư mục mới.
  3. Tạo một tệp có tên là index.js rồi sao chép đoạn mã này vào đó.
  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. Tạo một tệp có tên là package.json rồi sao chép đoạn mã này vào đó. Lưu ý rằng mô-đun express được liệt kê dưới dạng một phần phụ thuộc.
  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. Tạo một tệp có tên là app.yaml rồi sao chép đoạn mã này vào tệp đó:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Đảm bảo thư mục của bạn có dạng như sau:
    ls
    app.yaml index.js package.json
    

Xem xét cấu trúc thư mục bắt buộc cho mã ứng dụng

Ứng dụng Node.js của bạn phải có cấu trúc giống như một ứng dụng Node.js tiêu chuẩn. Tuy nhiên, hãy đảm bảo rằng bạn đã tuân thủ các yêu cầu sau trước khi triển khai bằng apigeetool cho Edge:

  • Bạn phải có tệp kê khai app.yaml và tệp này phải nằm trong thư mục gốc của ứng dụng. Để tìm hiểu thêm về tệp này, hãy xem tệp kê khai.
  • Bạn phải có tệp package.json. Tệp này phải liệt kê mọi phần phụ thuộc mà ứng dụng của bạn yêu cầu.
  • Bạn không bắt buộc phải có thư mục node_modules. Edge sẽ chạy npm install cho bạn khi ứng dụng Node.js được triển khai. Nó lấy các phần phụ thuộc từ package.json. Bạn chỉ cần cung cấp rõ ràng node_modules nếu có các mô-đun tuỳ chỉnh không có sẵn thông qua npm.

Triển khai proxy

  1. Trong một cửa sổ dòng lệnh, hãy dùng lệnh cd để chuyển đến thư mục gốc của ứng dụng Node.js.
  2. Thực thi apigeetool bằng lệnh deployhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    trong đó -n là tên bạn muốn đặt cho proxy mới. Giá trị này phải là duy nhất trong tổ chức. Bạn chỉ được phép dùng các ký tự sau trong tên: a-z0-9._\-$%

    Ví dụ:

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

    Để biết thêm thông tin về cách sử dụng apigeetool, hãy xem https://github.com/apigee/apigeetool-node.

Kiểm thử proxy

Bạn có thể kiểm thử proxy bằng lệnh cURL, bằng một ứng dụng REST như Postman hoặc trong giao diện người dùng Edge trong công cụ Trace. Dưới đây là một ví dụ về lệnh cURL.

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

Lấy nhật ký bản dựng

Nhật ký bản dựng cho bạn biết đầu ra liên quan đến việc triển khai và tạo ứng dụng Node.js. Xem thêm Tệp nhật ký.

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

Ví dụ:

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

Lấy nhật ký thời gian chạy

Nhật ký thời gian chạy cho thấy đầu ra liên quan đến ứng dụng đang chạy. Nhật ký thời gian chạy được giới hạn trong môi trường và trả về nhật ký cho bản sửa đổi proxy hiện đang được triển khai. Xem thêm Tệp nhật ký.

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

Ví dụ:

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

Xem proxy trong giao diện người dùng Edge

Sau khi triển khai thành công, bạn có thể xem và chỉnh sửa proxy trong phần API Proxies (API Proxy) của giao diện người dùng Edge.

Di chuyển một proxy Node.js hiện có sang proxy Hosted Targets

Phần này giải thích cách di chuyển thủ công một proxy API Edge hiện có sử dụng triển khai mục tiêu Node.js truyền thống sang Hosted Targets. Tài liệu này cũng giải thích cách triển khai proxy sau khi bạn thực hiện các bước di chuyển.

Các bước di chuyển sẽ giữ nguyên cấu trúc, chính sách, luồng và các phần tử cấu hình khác của API proxy. Bạn có thể thực hiện quy trình di chuyển theo bốn bước như trình bày bên dưới, sau đó triển khai proxy đã di chuyển bằng apigeetool.

Bước 1: Điều chỉnh cấu trúc tệp proxy

Để điều chỉnh cấu trúc tệp, proxy API phải nằm trên hệ thống tệp cục bộ. Nếu triển khai proxy trên Edge, bạn phải tải proxy xuống trước khi tiếp tục. Trong cấu hình truyền thống, "gói" proxy Edge bao gồm mã Node.js tuân theo cấu trúc tệp này. Mã xử lý ứng dụng Node.js được đặt trong thư mục resources/node:

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


Đối với Mục tiêu được lưu trữ, bạn phải đặt thư mục gốc của ứng dụng Node.js trong một thư mục có tên là resources/hosted. Chỉ cần tạo một thư mục mới có tên là resources/hosted rồi di chuyển nội dung của resources/node vào thư mục đó. Sau đó, bạn có thể xoá thư mục resources/node.

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

Bước 2: Thêm tệp kê khai

Tạo một tệp kê khai có tên là app.yaml rồi đặt tệp đó vào thư mục apiproxy/resources/hosted.

Sau đây là một ví dụ về tệp app.yaml. Nền tảng này chỉ định rằng thời gian chạy là Node.js (bắt buộc). Thao tác này cũng tạo ra một biến môi trường trong môi trường thực thi (một biến mà ứng dụng Node.js có thể truy cập). Biến môi trường là không bắt buộc và chỉ xuất hiện ở đây dưới dạng ví dụ. Để biết thêm thông tin chi tiết và ví dụ, hãy xem phần Tệp kê khai.

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


Ví dụ sau đây cho thấy cấu trúc dự án Node.js nằm ở đúng vị trí trong proxy để triển khai Mục tiêu được lưu trữ:

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

Bước 3: Đảm bảo bạn có tệp package.json

Trong các proxy Edge Node.js truyền thống, package.json là không bắt buộc. Tuy nhiên, đối với Hosted Targets, bạn phải cung cấp một mục trong thư mục apiproxy/resources/hosted. Hãy nhớ chỉ định mọi phần phụ thuộc bắt buộc cho ứng dụng của bạn trong tệp này.

Bước 4: Sửa đổi điểm cuối mục tiêu của proxy

Một proxy Node.js truyền thống yêu cầu phải có thẻ <ScriptTarget> trong tệp điểm cuối đích (thường là /apiproxy/targets/default.xml). Đối với Mục tiêu được lưu trữ, bạn cần thêm một thẻ trống có tên là <HostedTarget/>. Nếu có thẻ ScriptTarget trong tệp, bạn chỉ cần xoá thẻ đó. Ví dụ:

    <?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>
    

Triển khai proxy

Giờ đây, bạn có thể triển khai proxy bằng lệnh apigeetool deployproxy.

  1. cd đến thư mục gốc của proxy: /apiproxy
  2. Sử dụng lệnh này để triển khai proxy:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Ví dụ:

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

Để biết thêm thông tin về cách sử dụng apigeetool, hãy xem: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Kiểm thử proxy

Bạn có thể kiểm thử proxy bằng lệnh cURL, bằng một ứng dụng REST như Postman hoặc trong giao diện người dùng Edge trong công cụ Trace. Dưới đây là ví dụ về lệnh cURL:

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