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 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 từng bước thực hiện những việc sau:

  • Triển khai ứng dụng Node.js cho 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 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ó có phương thức triển khai mục tiêu Node.js Edge truyền thống sang 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 Mục tiêu được lưu trữ bằng cách sử dụng giao diện người dùng Edge. Khi hoàn tất hướng dẫn, bạn sẽ hiểu 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 tệp nhật ký triển khai và xây dựng.

Đăng nhập

  1. Truy cập: apigee.com/edge
  2. Hãy nhập thông tin đăng nhập Apigee của bạn để đă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. Trong 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. Đảm bảo bạn đã chọn 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 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. Trên trang Tạo, hãy nhớ chọn môi trường kiểm thử. 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 để hoàn tất.
  13. Sau khi triển khai thành công proxy, hãy nhấp vào Xem proxy hello-hosted-target ở 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 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 như 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 Navigator (Trình điều hướng), hãy chọn default (mặc định) trong phần Target Endpoints (Đ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>. 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 Mục tiêu được lưu trữ.

  4. Trong Trình điều hướng, hãy chú ý 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ê ở 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 trong 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 khi gỡ lỗi các sự cố xảy ra trong giai đoạn xây dựng cũng như 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 log (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à thử nghiệm ứng dụng đó trong giao diện người dùng Edge.
  • Bạn đã biết rằng proxy mục tiêu được lưu trữ cần có 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 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 đến Mục tiêu được lưu trữ bằng cách sử dụng apigeetool. Tiện ích apigeetool gói ứng dụng Node.js vào một proxy mục tiêu được lưu trữ mới và triển khai ứng dụng đó cho Edge.

Cài đặt apigeetool

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

npm install -g apigeetool

Tạo ứng dụng Node.js

Để giúp mọi việc trở nên dễ dàng, chúng tôi cung cấp mã cho một ứng dụng Node.js đơn giản.

  1. Tạo thư mục cho ứng dụng Node.js. Gọi thư mục 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 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. Hãy đả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 đối với 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 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 đây trước khi triển khai bằng apigeetool sang Edge:

  • Tệp kê khai app.yaml là bắt buộc và phải có 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 yêu cầu.
  • Thư mục node_moduleskhông bắt buộc. Edge chạy quy trình cài đặt npm cho bạn khi ứng dụng Node.js được triển khai. Tệp này sẽ 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 vào thư mục gốc của ứng dụng Node.js.
  2. Thực thi apigeetool bằng lệnh Implementhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    trong đó -n là tên mà bạn muốn đặt cho proxy mới. Đó phải là duy nhất trong tổ chức. Bạn chỉ được phép sử dụng các ký tự sau đây 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 tra proxy

Bạn có thể kiểm tra proxy bằng lệnh cURL, với ứ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/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 thấy kết quả liên quan đến việc triển khai và xây dựng ứng dụng Node.js. Xem thêm về 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 xác định phạm vi theo môi trường và trả về nhật ký 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 tại sang proxy Mục tiêu được lưu trữ

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 phương thức triển khai mục tiêu Node.js truyền thống sang 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 giúp giữ nguyên cấu trúc proxy API, chính sách, quy trình và các thành phần cấu hình khác. Bạn có thể thực hiện việc di chuyển trong 4 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 trong hệ thống tệp cục bộ của bạn. Nếu proxy được triển khai 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 và "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. Bạn chỉ cần tạo một thư mục mới có tên là resources/host (tài nguyên/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à tệp app.yaml mẫu. Phương thức này chỉ định thời gian chạy là Node.js (bắt buộc). Thao tá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ỉ xuất hiện tại đây để tham khảo. Để 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 chính xác 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, 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 Mục tiêu được lưu trữ 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 thẻ có tên là <ScriptTarget> phải có 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 xóa 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

Bây giờ, 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 xem bài viết: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Kiểm tra proxy

Bạn có thể kiểm tra proxy bằng lệnh cURL, với ứ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!