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

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Các hướng dẫn sau đây giải thích cách triển khai ứng dụng Node.js cho Edge bằng cách sử dụng 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 các tác vụ sau:

  • Triển khai ứng dụng Node.js cho các Mục tiêu được lưu trữ bằng giao diện người dùng Edge.
  • Triển khai ứng dụng Node.js cho các Mục tiêu được lưu trữ từ máy phát triển cục bộ của bạn.
  • Di chuyển một proxy hiện có đang triển khai mục tiêu Node.js truyền thống sang các Mục tiêu được lưu trữ.

Triển khai ứng dụng Node.js cho các Mục tiêu được lưu trữ 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 cho các Mục tiêu được lưu trữ bằng giao diện người dùng Edge. Khi xem xong hướng dẫn này, bạn sẽ nắm được cấu trúc và nội dung cơ bản của proxy Mục tiêu được lưu trữ, cũng như cách truy cập vào hoạt động triển khai và tạo tệp nhật ký.

Đăng nhập

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

Tạo proxy mới

  1. Trong trình đơn điều hướng bên, hãy chọn Phát triển > Proxy API.
  2. Nhấp vào + Proxy.
  3. Trên trang Tạo proxy, hãy chọn 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. Hãy nhớ chọn "Hello World" Sample (Mẫu "Hello World").
  7. Nhấp vào Tiếp theo.
  8. Trên trang Bảo mật, hãy chọn Chuyển tiếp (không có) cho mục Uỷ quyền.
  9. Nhấp vào Tiếp theo.
  10. Nhấp vào Tiếp theo.
  11. Trên trang Xây 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-host-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 (Theo dõi), bắt đầu một phiên Theo dõi rồi nhấp vào Send (Gửi). Bạn sẽ nhận được trạng thái 200 với 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ẻ Develop (Phát triển).
  2. Trong Trình điều hướng, hãy chọn mặc định trong mục Điểm cuối mục tiêu.
  3. Trong trình soạn thảo mã, hãy lưu ý rằng có một phần tử con <HostedTarget/> trống trong phần tử <TargetEndpoint>. Thẻ trống này là bắt buộc. Tệp này cho Edge biết rằng mục tiêu của proxy là một ứng dụng được triển khai vào môi trường Mục tiêu được lưu trữ.

  4. Trong Trình điều hướng, hãy lưu ý nội dung trong phần 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 được lưu trữ trong 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 trong 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 mô-đun nào, thì các phần phụ thuộc đó phải được liệt kê trong tệp 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 sự cố 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ẻ Develop (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 phần 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 cho môi trường Mục tiêu được lưu trữ và kiểm thử ứng dụng đó trong giao diện người dùng Edge.
  • Bạn đã tìm hiểu rằng proxy Mục tiêu được lưu trữ yêu cầu một thẻ trống đặc biệt trong Điểm cuối mục tiêu có tên là <HostedTarget/>.
  • Bạn đã biết rằng Edge sẽ 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 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 sang 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ộ của bạn cho các Mục tiêu được lưu trữ bằng apigeetool. Tiện ích apigeetool gộp ứng dụng Node.js vào một proxy mới của Hosted Targets (Mục tiêu được lưu trữ) rồi triển khai ứng dụng đó cho Edge.

Cài đặt apigeetool

Các 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 Trình quản lý đối tác dữ liệu (ệm) sau:

npm install -g apigeetool

Tạo ứng dụng Node.js

Để tạo điều kiện dễ dàng, chúng tôi cung cấp cho bạn mã cho ứ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 là node-hosted-express.
  2. cd vào thư mục mới.
  3. Tạo một tệp có tên index.js và sao chép đoạn mã này vào tệp đó.
  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 package.json rồi sao chép đoạn mã này vào tệp đó. Lưu ý rằng mô-đun express được liệt kê dưới dạng 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 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ư ứng dụng Node.js chuẩn. Tuy nhiên, hãy đảm bảo rằng bạn đã tuân thủ những yêu cầu sau đây trước khi triển khai bằng apigeetool cho Edge:

  • Tệp kê khai app.yaml là bắt buộc và phải tồn tại 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.
  • Thư mục node_modules không bắt buộc. Edge sẽ chạy npm install cho bạn khi ứng dụng Node.js được triển khai. Tệp này lấy các phần phụ thuộc từ package.json. Thời điểm duy nhất bạn cần cung cấp node_modules một cách rõ ràng là khi bạn có các mô-đun tuỳ chỉnh không truy cập được thông qua npm.

Triển khai proxy

  1. Trong dòng lệnh, hãy cd đến thư mục gốc của ứng dụng Node.js.
  2. Thực thi apigeetool bằng lệnh Deployhosttarget:
  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. Mã này phải là duy nhất trong tổ chức. Bạn được phép sử dụng các ký tự trong tên này ở các mức sau: 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 tham khảo 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 ứng dụng khách REST như Postman hoặc trong giao diện người dùng Edge trong công cụ Theo dõi. Dưới đây là ví dụ về lệnh cURL.

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

Tải nhật ký bản dựng

Nhật ký bản dựng cho bạn thấy kết quả 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

Tải Nhật ký thời gian chạy

Nhật ký thời gian chạy cho thấy kết quả liên quan đến ứng dụng đang chạy. Nhật ký thời gian chạy thuộc phạm vi của môi trường và nhật ký trả về cho bản sửa đổi proxy hiện được triển khai. Xem thêm về 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 Proxy API của giao diện người dùng Edge.

Di chuyển proxy Node.js hiện có sang proxy Mục tiêu được lưu trữ

Phần này giải thích cách di chuyển một proxy API Edge hiện có đang dùng phương thức triển khai nhắm mục tiêu Node.js truyền thống sang các Mục tiêu được lưu trữ. Bài viết 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 proxy API, chính sách, luồng và các phần tử cấu hình khác. Bạn có thể thực hiện quá trình di chuyển theo bốn bước, như được nêu dưới đây, 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 được 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 các 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. Bạn chỉ cần tạo một thư mục mới có tên là resources/resource (tài nguyên/được lưu trữ) 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à ví dụ về tệp app.yaml. Mã này chỉ định rằng môi trường thời gian chạy là Node.js (bắt buộc). Phương thức này cũng tạo 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ỉ được hiển thị ở đây làm 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 Node.js truyền thống của Edge, package.json là không bắt buộc. Tuy nhiên, đối với Mục tiêu được lưu trữ, bạn phải cung cấp một tệp 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 đích của proxy

Proxy Node.js truyền thống yêu cầu một thẻ có tên là <ScriptTarget> phải có trong tệp điểm cuối mục tiêu (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à &lt;HostedTarget/&gt;. Nếu có một 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 vào 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 tham khảo: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Thử nghiệm proxy

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

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