Tham khảo 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

Giới hạn biến môi trường

Mục tiêu được lưu trữ giới hạn kích thước và số lượng biến môi trường mà bạn có thể đặt trong môi trường thời gian chạy của Mục tiêu được lưu trữ.

  • 1000: Độ dài tối đa của một biến môi trường.
  • 100: Số lượng biến môi trường tối đa mà bạn có thể đặt.

Để biết thông tin về cách đặt biến môi trường, hãy xem phần Tệp kê khai.

Biến môi trường được đặt trong thời gian chạy ứng dụng

Khi bạn triển khai ứng dụng Mục tiêu được lưu trữ, các biến môi trường sau sẽ được thiết lập và có sẵn cho ứng dụng của bạn trong thời gian chạy:

  • APIGEE_ENVIRONMENT – Môi trường triển khai proxy Mục tiêu được lưu trữ.
  • APIGEE_ORGANIZATION – Tổ chức triển khai proxy Mục tiêu được lưu trữ.
  • PORT – Cổng nơi ứng dụng Mục tiêu được lưu trữ phải theo dõi.

Phân bổ tài nguyên hệ thống

Mỗi phiên bản được lưu trữ của Mục tiêu được lưu trữ sẽ nhận được các tài nguyên sau:

  • Bộ nhớ 256 MB
  • CPU 1,2 GHz

Chuyển tỷ lệ

Phần này mô tả cách các ứng dụng Hosted Targets mở rộng quy mô, tuỳ thuộc vào loại tài khoản Edge mà bạn có.
  • Phiên bản dùng thử của Apigee Edge chỉ được dùng một phiên bản Mục tiêu được lưu trữ cho mỗi proxy.
  • Các tài khoản Apigee Edge có trả phí sẽ được tự động điều chỉnh tỷ lệ dựa trên tốc độ yêu cầu, độ trễ phản hồi và các chỉ số khác về ứng dụng trên mỗi proxy.
  • Các ứng dụng Mục tiêu được lưu trữ được triển khai cho cả phiên bản có tính phí và phiên bản dùng thử của Apigee Edge sẽ giảm xuống mức 0 trong khoảng thời gian không hoạt động. Trong trường hợp này, bạn có thể nhận thấy thời gian phản hồi chậm hơn trong một khoảng thời gian ngắn. Xem thêm nội dung Các vấn đề đã biết

Tệp kê khai

Để thu thập thông tin về thời gian chạy nhằm xây dựng và triển khai ứng dụng được lưu trữ, Edge sẽ tìm một tệp kê khai có tên app.yaml trong thư mục resources/resources (tài nguyên/được lưu trữ). Tệp này chứa thông tin cần thiết để tạo và triển khai ứng dụng Mục tiêu được lưu trữ.

Cú pháp tệp Manfiest

runtime: node
runtimeVersion: version_number
command: command_name
args: argument_array
env:
  - name: variable_name
    value: literal_value
  - name: variable_name
    valueRef:
      name: kvm_name
      key: kvm_value

Phần tử của tệp kê khai

Tệp kê khai app.yaml bao gồm các phần tử sau:

  • thời gian chạy – (Bắt buộc) Chỉ định loại ứng dụng mà bạn đang triển khai. Bạn phải chỉ định node.
  • runtimeVersion – (Không bắt buộc) Phiên bản của môi trường thời gian chạy mà ứng dụng của bạn sử dụng. Mặc định: Node.js LTS (phiên bản 10.x). Hãy tham khảo Kho lưu trữ chính thức của Docker cho Nút để biết các lựa chọn khác.
  • command – (Không bắt buộc) Cho phép bạn chỉ định một lệnh để chạy ngoài lệnh mặc định dùng để khởi động ứng dụng. Mặc định: Node.js=npm
  • args – (Không bắt buộc) Mảng các đối số dòng lệnh để truyền đến ứng dụng (được chỉ định trong cú pháp mảng YAML chuẩn). Thông thường, các mã này được thêm vào lệnh mặc định. Lựa chọn mặc định là start (bắt đầu). Ví dụ: theo mặc định, ứng dụng Node.js sẽ được truyền lệnh npm start.
  • env – (Không bắt buộc) Một mảng các biến môi trường (cặp tên/giá trị) để đặt trong môi trường thời gian chạy của Mục tiêu được lưu trữ. Các biến này có sẵn cho ứng dụng Mục tiêu được lưu trữ đã triển khai.
    • name – Tên biến.
    • value | valueRef – Bạn có hai lựa chọn. Bạn có thể đặt giá trị cố định hoặc tham chiếu một giá trị được lưu trữ trong Bản đồ khoá-giá trị. Bản đồ giá trị khoá phải tồn tại trong môi trường Edge. Xem phần Xử lý bản đồ khoá-giá trị
      • Nếu sử dụng value, bạn phải chỉ định một biến name và một giá trị cố định value. Ví dụ:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • Nếu sử dụng valueRef, thì bạn phải cung cấp tên của Bản đồ giá trị khoá (KVM) mà bạn đã tạo trước đó trong Edge và một khoá. Ví dụ:
        runtime: node
        env:
          - name: DB_ENV
            value: production
          - name: DB_PASSWORD
            valueRef:
              name: hosted-kvm
              key: db-password

    Tệp kê khai mẫu

    Phần này chứa các tệp kê khai mẫu cho ứng dụng Node.js. Bạn cần có tệp kê khai để triển khai ứng dụng Mục tiêu được lưu trữ và tệp này phải nằm trong thư mục apiproxy/resources/hosted, đồng thời tên tệp phải là app.yaml.

    Sau đây là ví dụ về tệp app.yaml (tệp kê khai) cho ứng dụng Node.js.

    Ví dụ chỉ định một biến môi trường cố định:

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

    Ví dụ về lệnh bắt đầu, đối số dòng lệnh và biến môi trường.

     runtime: node
     command: ./node_modules/pm2/bin/pm2
     env:
       - name: NODE_ENV
         value: production
     args:
       - app.js


    Ví dụ chỉ định tham chiếu đến một bản đồ giá trị khoá (KVM):

    Để biết thêm thông tin về quyền truy cập KVM, hãy xem phần Tệp kê khai.

    runtime: node
    env:
      - name: DB_ENV
        value: production
      - name: DB_PASSWORD
        valueRef:
          name: hosted-kvm
          key: db-password

    Các ứng dụng Mục tiêu được lưu trữ mẫu trên GitHub

    Apigee cung cấp các proxy mẫu trên GitHub với các ứng dụng Hosted Targets được viết bằng Node.js. Bạn có thể sao chép kho lưu trữ này và làm theo hướng dẫn README để triển khai bất kỳ proxy nào.

    Điều kiện tiên quyết

    Để triển khai mẫu, bạn phải cài đặt 2 công cụ trên hệ thống:

    • apigeetool – Công cụ dòng lệnh để triển khai proxy Edge.
    • get_token – Công cụ dòng lệnh để lấy mã thông báo uỷ quyền do apigeetool yêu cầu.

    Nếu muốn kiểm thử các mẫu trên máy, bạn cũng phải cài đặt Node.js.

    Tải kho lưu trữ mẫu

    1. Trong trình duyệt, hãy truy cập vào https://github.com/apigee/api-platform-samples.
    2. Nhấp vào Clone or download (Sao chép hoặc tải xuống) rồi kéo kho lưu trữ đó vào hệ thống cục bộ của bạn bằng phương thức bạn muốn.
    3. cd đến <your install dir>/api-platform-samples/doc-samples/hosted-targets
    4. Sau khi tải kho lưu trữ xuống, bạn có thể đĩa cd vào bất kỳ thư mục mẫu nào và làm theo hướng dẫn README để triển khai proxy mẫu cho Edge. Lệnh triển khai được hiển thị bên dưới. Bạn chỉ cần thay thế các thông số được chỉ định bằng các thông số cho tài khoản Apigee của bạn:
    5. get_token && apigeetool deployproxy \
        -o YOUR_ORGANIZATION \
        -e YOUR_ENVIRONMENT \
        --json \
        --token "$(< ~/.sso-cli/valid_token.dat)"\
        --api NAME_OF_THE_PROXY \
        --directory .

    Ví dụ: Thực thi ứng dụng mẫu

    Sao chép kho lưu trữ mẫu

    cd ~/myhome
    git clone https://github.com/apigee/api-platform-samples.git
    cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
    cd node-hosted-hello

    Kiểm thử ứng dụng cục bộ

    Bạn phải cài đặt Node.js để thực hiện kiểm thử cục bộ này.

     PORT=8081 node apiproxy/resources/hosted/index.js
     curl http://localhost:8081
    

    Kết quả điểm dữ liệu:

    {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}

    Triển khai proxy

     get_token && apigeetool deployproxy \
       -o myorg \
       -e test \
       --json \
       --token "$(< ~/.sso-cli/valid_token.dat)"\
       --api node-hosted-hello \
       --directory .

    Kiểm thử quá trình triển khai

    Quá trình triển khai có thể mất vài phút. Nếu bạn gặp lỗi triển khai, hãy thực thi lại lệnh triển khai.

    curl http://myorg-test.apigee.net/node-hosted-hello

    Kết quả điểm dữ liệu:

    {"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"

    Vấn đề đã biết

    • Thời gian trễ mạng – Hiện ứng dụng Node.js không còn chạy trong JVM của MP nữa, nên đã có một sự chuyển đổi mạng giữa MP và triển khai. Tất nhiên là việc này sẽ có chi phí, nhưng các điểm chuẩn ban đầu cho thấy nó hoạt động tốt trong một số tiền hợp lý
    • Phản hồi API chậm – Cơ sở hạ tầng chạy các ứng dụng của bạn sẽ tự động mở rộng quy mô dựa trên nhu cầu. Tức là ứng dụng thực sự có thể giảm quy mô xuống còn 0 thực thể. Trong trường hợp này, yêu cầu API tiếp theo sẽ mất nhiều thời gian hơn một chút so với các yêu cầu API thông thường vì cơ sở hạ tầng đang xoay vòng (các) thực thể để xử lý yêu cầu.
    • Lỗi triển khai – Nếu bạn gặp lỗi triển khai khi triển khai proxy Mục tiêu được lưu trữ, hãy thử triển khai lại proxy. Trong một số trường hợp, quá trình triển khai có thể hết thời gian và nếu bạn triển khai lại, vấn đề sẽ tự được giải quyết.