Tác 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 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 có chứa ứng dụng Mục tiêu được lưu trữ, ứng dụng Mục tiêu được lưu trữ liên kết sẽ bị huỷ triển khai, nhưng hình ảnh ứng dụng cơ bản sẽ không bị xoá. Nếu bạn triển khai lại proxy, ứng dụng Hosted Targets sẽ được triển khai lại.

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

Sau khi bạn xoá 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. Tuy nhiên, mã xử lý ứng dụng sẽ vẫn tồn tại.

Truy cập vào tệp nhật ký

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

  • Nhật ký bản dựng – Cho bạn biết kết quả liên quan đến việc triển khai và xây dựng ứ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 thuộc phạm vi môi trường và cho thấy thông tin nhật ký cho bản sửa đổi proxy hiện đang được triển khai.

Truy cập vào nhật ký qua giao diện người dùng của 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 Logs (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 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 bài viết Nhận nhật ký Node.js được lưu vào bộ nhớ đệm.

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

Phần này giải thích cách triển khai proxy Node.js cho các Mục tiêu được lưu trữ trong trường hợp bạn sử dụng kho lưu trữ TLD 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ả 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ữ chạy npm install trên mã của bạn khi mã đó được triển khai. Tuy nhiên, nếu bạn sử dụng một kho lưu trữ TLD 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. Xem thêm nội dung 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 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 đều được nén và tải lên cùng với gói.

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

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

Để sử dụng các mô-đun được cung cấp từ một kho lưu trữ TLD 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. Xác định vị trí .npmrc (phải ở trong ~/.npmrc).
    2. Trong tệp .npmrc, hãy lưu ý mã thông báo ở cuối dòng có dạng như sau:

      //registry.npmjs.org/:_authToken=****
    3. Hoặc sử 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á, như được mô tả dưới đây.

    Edge

    Cách truy cập vào trang cấu hình Bản đồ khoá-giá trị 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 đồ khoá-giá trị trong thanh điều hướng bên trái.

    Classic Edge (Đám mây riêng tư)

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

    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 > Cấu hình môi trường > Bản đồ khoá-giá trị 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 New Key Value Map (Bản đồ khoá-giá trị mới), hãy nhập tên rồi chọn Encrypted (Đã mã hoá).
  6. Nhấp vào Thêm.
  7. Thêm mã thông báo xác thực mà bạn đã tìm thấy hoặc tạo trước đó 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 (tên) 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 đó.
    • Thuộc tính key (khoá) 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 của bạn. 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 với tệp .npmrc và các tệp app.yaml đi kèm.
  12. Đảm bảo rằng proxy mới hoặc đã 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 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 proxy có cài đặt mô-đun npm riêng tư không. Nếu có:
    1. Trong thẻ phát triển, hãy đảm bảo bạn có tệp .npmrc.
    2. Đảm bảo mã thông báo của bạn hợp lệ (hãy thử cài đặt mô-đun cục bộ 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 nhớ thiết lập phạm vi đó.

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

Theo mặc định, NPM v4 được dùng để cài đặt các phần phụ thuộc đi kèm 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 NPM 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 bài viết Phần tử 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 TLD 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 theo gói, thì hệ thống sẽ sử dụng phiên bản GMS 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 phần Cách tạo ứng dụng Node.js có 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. 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 này đang được thiết lập và chạy trong vùng chứa.

Theo mặc định, điểm cuối mà Apigee mong đợi 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 một 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 bài viết Phần tử 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 trạng thái, hãy lưu ý những điều sau:

  • Nếu ứng dụng của bạn thoát khi Apigee đạt đến điểm cuối, thì ứng dụng sẽ không khởi động như mong đợi.
  • Nếu điểm cuối của bạn trả về trạng thái HTTP 404 Không tìm thấy trạng thái không tìm thấy thì cũng không sao. /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 Trạng thái đã phân loại

Các phiên bản mới hơn của Node.js sử dụng một phiên bản của kháng nghị trang web được tạo bằng Google Analytics cho miền của bạn (/root/.npm) cho bộ nhớ đệm của Node. Vị trí này gây ra sự cố đối với Mục tiêu được lưu trữ vì vị trí thư mục đó ở chế độ chỉ đọc vì thời gian chạy của Mục tiêu được lưu trữ sử dụng hệ thống tệp tmpfs, trong đó chỉ có /tmp là có thể ghi. Để 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 thành 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 của bạn mà không cần TLD

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ữ. Tuy nhiên, trong nhiệm vụ trước, chúng ta đã thảo luận về vấn đề khi sử dụng NPM vì các phiên bản mới hơn sẽ cố gắng sử dụng /root/.npm cho bộ nhớ đệm NPM. Bộ nhớ đệm này không ghi được và khiến Mục tiêu được lưu trữ không khởi động được. Mặc dù nhiệm vụ trước đó sẽ hỗ trợ vấn đề này, nhưng có một lựa chọn khác là chạy ứng dụng của bạn mà không cần GMS. Để 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 Mục tiêu được lưu trữ trực tiếp 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ụ.