Tác 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

Huỷ triển khai proxy mục tiêu được lưu trữ

Khi bạn huỷ triển khai một proxy Edge chứa ứng dụng Mục tiêu được lưu trữ, ứng dụng Mục tiêu được lưu trữ được liên kết sẽ không được triển khai nhưng hình ảnh cơ bản của ứng dụng sẽ không bị xoá. Nếu bạn triển khai lại proxy, ứng dụng Mục tiêu được lưu trữ sẽ được triển khai lại.

Xoá proxy mục tiêu được lưu trữ

Sau khi bạn xoá một proxy mục tiêu được lưu trữ, các thực thể thời gian chạy cơ bản sẽ ngừng chạy trong một khoảng thời gian nhất định. Tuy nhiên, mã xử lý ứng dụng sẽ vẫn tồn tại.

Truy cập tệp nhật ký

Tệp nhật ký rất hữu ích khi gỡ lỗi và khắc phục sự cố. Bạn có thể xem hai loại tệp nhật ký để triển khai Mục tiêu được lưu trữ:

  • Nhật ký bản dựng – Cho thấy kết quả liên quan đến việc triển khai và tạo ứng dụng Mục tiêu được lưu trữ.
  • Nhật ký thời gian chạy – Cho bạn thấy đầu ra liên quan đến ứng dụng Mục tiêu được lưu trữ đang chạy. Nhật ký thời gian chạy được xác định phạm vi theo môi trường và hiển thị thông tin nhật ký cho bản sửa đổi proxy hiện đã được triển khai.

Truy cập vào nhật ký từ giao diện người dùng Edge

  1. Truy cập: apigee.com/edge
  2. Nhập thông tin đăng nhập của bạn rồi nhấp vào Đăng nhập.
  3. Chọn Phát triển > Proxy API trong trình đơn điều hướng bên.
  4. Chọn proxy mà bạn muốn xem nhật ký.
  5. Nhấp vào thẻ Phát triển.
  6. Để xem nhật ký bản dựng, hãy nhấp vào Build log (Nhật ký bản dựng).
  7. Để xem nhật ký thời gian chạy, hãy nhấp vào Nhật ký thời gian chạy.

Truy cập vào nhật ký bằng API

Bạn cũng có thể sử dụng API Edge để truy xuất nhật ký Mục tiêu được lưu trữ. Để biết thông tin chi tiết, hãy xem phần Tải nhật ký Node.js vào bộ nhớ đệm.

Sử dụng kho lưu trữ npm riêng tư

Phần này giải thích cách triển khai proxy Node.js cho Mục tiêu được lưu trữ trong trường hợp bạn sử dụng kho lưu trữ MAP riêng tư trong môi trường phát triển của mình.

Những điều bạn cần biết về cách sử dụng kho lưu trữ riêng tư

Khi bạn triển khai ứng dụng Node.js cho Edge, tất cả các phần phụ thuộc của dự án sẽ được nhập tự động trong quá trình triển khai. Về cơ bản, Mục tiêu được lưu trữ sẽ chạy npm install trên mã của bạn khi được triển khai. Tuy nhiên, nếu bạn sử dụng kho lưu trữ MAP riêng tư trong môi trường phát triển, thì bạn không thể phân giải các phần phụ thuộc riêng tư trên Đám mây. Trong trường hợp này, giải pháp là sử dụng tuỳ chọn --bundled-dependencies khi bạn sử dụng tiện ích triển khai apigeetool. Hãy xem thêm phần Triển khai Node.js từ hệ thống của bạn sang Edge.

Khi bạn sử dụng cờ --bundled-dependencies trên apigeetool, ứng dụng Node.js của bạn sẽ được tải lên Mục tiêu được lưu trữ và mọi tệp cục bộ/riêng tư được liệt kê trong mảng BundledDependencies trong package.json sẽ được nén và tải lên cùng với gói.

Mặc dù không phải là một trường hợp phổ biến, nhưng xin lưu ý rằng nếu bạn đồng bộ hoá hai chiều kho lưu trữ SSID công khai trong nội bộ, thì quá trình triển khai sẽ không thành công nếu gói triển khai bao gồm một tệp .npmrc hoặc package-lock.json trỏ đến bản sao chép riêng tư của bạn. Trong trường hợp này, hãy nhớ bỏ .npmrc hoặc package-lock.json khỏi gói proxy mà bạn định triển khai.

Triển khai bằng kho lưu trữ SSID riêng tư

Để sử dụng các mô-đun được cung cấp từ kho lưu trữ SSID riêng tư, hãy làm theo các bước sau:

  1. Đăng nhập vào npm:
    npm login
  2. Nhận mã thông báo xác thực npm:
    1. Tìm .npmrc (phải ở ~/.npmrc).
    2. Trong tệp .npmrc, hãy lưu ý rằng mã thông báo ở cuối dòng như sau:

      //registry.npmjs.org/:_authToken=****
    3. Bạn cũng có thể dùng các lệnh npm token <list | create | revoke> để liệt kê, tạo hoặc thu hồi mã thông báo xác thực. Hãy xem tài liệu về npm-token để biết thêm thông tin chi tiết.
  3. Truy cập vào trang cấu hình Bản đồ giá trị khoá, theo mô tả bên dưới.

    Edge

    Cách truy cập vào trang cấu hình Bản đồ giá trị khoá bằng giao diện người dùng Edge:

    1. Đăng nhập vào apigee.com/edge.
    2. Chọn Quản trị > Môi trường > Bản đồ giá trị khoá trong thanh điều hướng bên trái.

    Phiên bản cũ (Đám mây riêng tư)

    Cách truy cập vào trang cấu hình Bản đồ giá trị khoá bằng giao diện người dùng Classic Edge:

    1. Đăng nhập vào http://ms-ip:9000, trong đó ms-ip là địa chỉ IP hoặc tên DNS của nút Máy chủ quản lý.
    2. Chọn API > Environment Configuration > Key Value Maps (API > Cấu hình môi trường > Bản đồ giá trị khoá) trong thanh điều hướng trên cùng.
  4. Nhấp vào + Bản đồ giá trị khoá.
  5. Trong hộp thoại Bản đồ giá trị khoá mới, hãy nhập tên rồi chọn Đã mã hoá.
  6. Nhấp vào Thêm.
  7. Thêm mã xác thực mà bạn đã tìm thấy trước đó hoặc đã tạo dưới dạng mục nhập mới trong mỗi KVM mà bạn vừa tạo.
  8. Trong tệp app.yaml, hãy thêm một mục tham chiếu đến KVM và khoá liên kết với mã thông báo xác thực npm. Hàm này có dạng như sau:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Trong trường hợp:

    • Thuộc tính name cấp cao nhất tương ứng với tên của biến môi trường sẽ được tạo.
    • Tên trong valueRef tương ứng với KVM mà bạn đã tạo trước đây.
    • Thuộc tính key tương ứng với khoá liên kết với mã thông báo npm mà bạn đã thêm vào KVM.
  10. Tạo tệp .npmrc trong cùng thư mục với package.json. Tệp này sẽ có dạng như sau:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    hoặc nếu không sử dụng registry.npmjs.org, bạn có thể đặt phạm vi trong tệp .npmrc bằng cách thêm một dòng như sau @myscope:registry=https://mycustomregistry.example.org Xem thêm tài liệu npmrc.
  11. Tải lên hoặc cập nhật proxy Node.js của bạn bằng cách bao gồm tệp .npmrc và các tệp app.yaml.
  12. Đảm bảo proxy mới hoặc proxy đã cập nhật của bạn triển khai và hoạt động với mô-đun kho lưu trữ riêng tư mong muốn.
  13. Nếu proxy không triển khai, hãy kiểm tra nhật ký bản dựng để xem có bị lỗi khi cài đặt mô-đun npm riêng tư hay không. Nếu có:
    1. Trong thẻ phát triển, hãy đảm bảo có tệp .npmrc.
    2. Đảm bảo mã thông báo của bạn là hợp lệ (thử cài đặt mô-đun trên máy bằng mã thông báo có trong kvm).
    3. Nếu bạn đang sử dụng phạm vi tuỳ chỉnh, hãy đảm bảo rằng bạn đã đặt phạm vi đó.

Chỉ định phiên bản SSID cho các phần phụ thuộc đi kèm

Theo mặc định, SSID phiên bản 4 được dùng để cài đặt các phần phụ thuộc đóng gói trong môi trường Mục tiêu được lưu trữ. Tuy nhiên, nếu muốn sử dụng một phiên bản SSID khác, bạn có thể chỉ định phiên bản đó trong biến môi trường NPM_VERSION. Bạn có thể đặt biến này trong tệp kê khai của ứng dụng. Xem Các phần tử của tệp kê khai để biết thông tin chi tiết.

Nếu bạn sử dụng các phần phụ thuộc đi kèm và nếu bạn không chỉ định NPM_VERSION, thì Mục tiêu được lưu trữ sẽ sử dụng MAP phiên bản 4 theo mặc định. Nếu bạn không sử dụng các phần phụ thuộc đóng gói, thì hệ thống sẽ sử dụng phiên bản MAP có trong thời gian chạy Node.js mà bạn chỉ định.

Ví dụ về phần phụ thuộc theo gói

Để biết ví dụ minh hoạ tính năng phần phụ thuộc đi kèm với Mục tiêu được lưu trữ, hãy xem Cách tạo ứng dụng Node.js với Hàm được lưu trữ bằng các mô-đun tuỳ chỉnh.

Thêm điểm cuối kiểm tra tình trạng

Bạn có thể triển khai điểm cuối kiểm tra tình trạng cho ứng dụng Node.js của mình. Apigee sử dụng điểm cuối này khi ứng dụng Node.js của bạn bắt đầu kiểm tra để đảm bảo rằng ứng dụng đang hoạt động và chạy trong vùng chứa.

Theo mặc định, điểm cuối mà Apigee dự kiến là /health. Bạn có thể thay đổi điểm cuối mặc định bằng cách chỉ định điểm cuối trong biến môi trường có tên là HOSTED_TARGET_HEALTH_CHECK_PATH. Bạn có thể đặt biến này trong tệp kê khai của ứng dụng. Xem Các phần tử của tệp kê khai để biết thông tin chi tiết.

Bạn không bắt buộc phải triển khai điểm cuối kiểm tra tình trạng. Tuy nhiên, nếu bạn triển khai điểm cuối kiểm tra tình trạng, hãy lưu ý những điều sau:

  • Nếu ứng dụng của bạn thoát khi Apigee đến điểm cuối, thì ứng dụng sẽ không khởi động như dự kiến.
  • Việc điểm cuối của bạn trả về trạng thái HTTP 404 Not Found (không tìm thấy) vẫn có thể xảy ra. /health hoặc HOSTED_TARGET_HEALTH_CHECK_PATH chỉ được dùng để kiểm tra xem ứng dụng của bạn có đang chạy hay không. Phản hồi thực tế sẽ bị bỏ qua.

Thay đổi vị trí bộ nhớ đệm SSID

Các phiên bản Node.js mới hơn sử dụng phiên bản SSID sử dụng /root/.npm cho bộ nhớ đệm SSID. Vị trí này đưa ra vấn đề cho Mục tiêu được lưu trữ vì vị trí thư mục đó ở chế độ chỉ đọc vì thời gian chạy Mục tiêu được lưu trữ sử dụng hệ thống tệp tmpfs nơi chỉ có thể ghi /tmp. Để giải quyết vấn đề này, bạn có thể đặt biến môi trường npm_config_cache trong tệp app.yaml (tệp kê khai) của ứng dụng vào một thư mục trong /tmp. Ví dụ:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

Chạy ứng dụng mà không cần dùng SSID

Theo mặc định, Mục tiêu được lưu trữ sử dụng npm start để chạy ứng dụng Mục tiêu được lưu trữ của bạn. Tuy nhiên, trong nhiệm vụ trước, chúng ta đã thảo luận một vấn đề về việc sử dụng SSID vì các phiên bản mới hơn sẽ cố gắng sử dụng /root/.npm cho bộ nhớ đệm CPP. Điều này không thể ghi và dẫn đến việc Mục tiêu được lưu trữ của bạn không khởi động được. Mặc dù tác vụ trước sẽ xử lý được sự cố này, nhưng bạn cũng có một lựa chọn khác để chạy ứng dụng mà không cần Lý lịch. Để thực hiện việc này, bạn có thể dùng các giá trị commandargs trong tệp app.yaml (tệp kê khai) của ứng dụng để chạy trực tiếp Mục tiêu được lưu trữ bằng node index.js. Ví dụ:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
Tất nhiên, bạn có thể sử dụng bất kỳ lệnh nào bạn cho là phù hợp và node index.js chỉ là một ví dụ.