Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Huỷ triển khai một proxy Hosted Targets
Khi bạn huỷ triển khai một proxy Edge có chứa ứng dụng Hosted Targets, ứng dụng Hosted Targets được 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á một proxy Hosted Targets
Sau khi bạn xoá một proxy Hosted Targets, các phiên bản 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 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ý cho việc triển khai Mục tiêu được lưu trữ:
- Nhật ký bản dựng – Cho bạn thấy đầu ra liên quan đến việc triển khai và tạo ứng dụng Hosted Targets.
- Nhật ký thời gian chạy – Cho biết đầu ra liên quan đến ứng dụng Hosted Targets đang chạy. Nhật ký thời gian chạy được giới hạn trong môi trường và cho biết 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
- Truy cập vào: apigee.com/edge
- Nhập thông tin đăng nhập của bạn rồi nhấp vào Đăng nhập.
- Chọn Phát triển > API Proxy trong trình đơn điều hướng bên.
- Chọn proxy mà bạn muốn xem nhật ký.
- Nhấp vào thẻ Phát triển.
- Để xem nhật ký bản dựng, hãy nhấp vào Build Logs (Nhật ký bản dựng).
- Để 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 Edge API để 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 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 tư
Phần này giải thích cách triển khai một proxy Node.js cho Hosted Targets trong trường hợp bạn sử dụng kho lưu trữ NPM riêng tư trong môi trường phát triển.
Những điều bạn cần biết về việc sử dụng kho lưu trữ riêng tư
Khi bạn triển khai một ứng dụng Node.js lên Edge, tất cả các phần phụ thuộc của dự án sẽ tự động được nhập trong quá trình triển khai.
Về cơ bản, Hosted Targets 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 kho lưu trữ NPM riêng tư trong môi trường phát triển, thì các phần phụ thuộc riêng tư sẽ không thể phân giải trong Cloud. Trong trường hợp này, giải pháp là sử dụng lựa chọn --bundled-dependencies khi bạn dùng tiện ích triển khai apigeetool. Xem thêm
Triển khai Node.js từ hệ thống của bạn đến 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 Hosted Targets và mọi tệp cục bộ/riêng tư có 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à 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ữ NPM công khai nội bộ, thì quá trình triển khai sẽ thất bại nếu gói triển khai của bạn bao gồm một tệp .npmrc hoặc package-lock.json trỏ đến bản phản chiếu 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 tư
Để sử dụng các mô-đun được cung cấp từ một kho lưu trữ NPM riêng tư, hãy làm theo các bước sau:
- Đăng nhập vào npm:
npm login
- Nhận mã thông báo xác thực npm:
- Tìm .npmrc (thường nằm trong ~/.npmrc).
- Trong .npmrc, hãy lưu ý mã thông báo ở cuối dòng có dạng như sau:
//registry.npmjs.org/:_authToken=**** - Hoặc dùng lệnh
npm token <list | create | revoke>để liệt kê, tạo hoặc thu hồi mã thông báo uỷ quyền. Hãy xem tài liệu về npm-token để biết thêm thông tin chi tiết. - Truy cập vào trang cấu hình Key Value Maps (Bản đồ khoá giá trị), như mô tả bên dưới.
Edge
Cách truy cập vào trang cấu hình Key Value Maps bằng giao diện người dùng Edge:
- Đăng nhập vào apigee.com/edge.
- 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 (Private Cloud)
Cách truy cập vào trang cấu hình Key Value Maps bằng giao diện người dùng Classic Edge:
- Đă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ý. - Chọn API > Environment Configuration > Key Value Maps (API > Cấu hình môi trường > Bản đồ khoá giá trị) trong thanh điều hướng trên cùng.
- Nhấp vào + Key Value Map.
- Trong hộp thoại New Key Value Map (Bảng khoá-giá trị mới), hãy nhập tên rồi chọn Encrypted (Đã mã hoá).
- Nhấp vào Thêm.
- Thêm mã thông báo uỷ quyền mà bạn đã xác định vị trí hoặc tạo trước đó làm một mục mới trong mỗi KVM mà bạn vừa tạo.
- Trong tệp app.yaml, hãy thêm một mục tham chiếu đến KVM và khoá được liên kết với mã thông báo uỷ quyền npm. Đoạn mã sẽ trông giống như sau:
- 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.
- name trong valueRef tương ứng với KVM mà bạn đã tạo trước đó.
- Thuộc tính key tương ứng với khoá liên kết đến mã thông báo npm mà bạn đã thêm vào KVM.
- 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:
hoặc nếu không dùng//registry.npmjs.org/:_authToken=${NPM_TOKEN}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ư thế này@myscope:registry=https://mycustomregistry.example.orgXem thêm tài liệu npmrc. - Tải lên hoặc cập nhật proxy Node.js bằng tệp .npmrc và tệp app.yaml được đưa vào.
- Đảm bảo rằng 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ư mà bạn muốn.
- Nếu proxy không triển khai, hãy kiểm tra nhật ký bản dựng để xem proxy có không cài đặt được mô-đun npm riêng tư hay không. Nếu có:
- Trong thẻ develop (phát triển), hãy đảm bảo rằng .npmrc xuất hiện.
- Đả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ộ khi có mã thông báo trong kvm).
- Nếu bạn đang sử dụng một phạm vi tuỳ chỉnh, hãy đảm bảo rằng phạm vi đó đã được đặt.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_tokenTrong trường hợp:
Chỉ định phiên bản NPM cho các phần phụ thuộc đi kèm
Theo mặc định, NPM phiên bản 4 được dùng để cài đặt các phần phụ thuộc theo gói trong môi trường Hosted Targets.
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. Hãy xem phần Các phần tử trong 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ì Hosted Targets sẽ sử dụng NPM 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 đi kèm, thì phiên bản NPM có trong thời gian chạy Node.js mà bạn chỉ định sẽ được dùng.
Ví dụ về các phần phụ thuộc theo gói
Để xem ví dụ minh hoạ tính năng phần phụ thuộc đi kèm với Hosted Targets, hãy xem phần Cách tạo ứng dụng Node.js bằng Hosted Functions bằng các mô-đun tuỳ chỉnh.Thêm một điểm cuối kiểm tra tình trạng
Bạn có thể triển khai một đ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 ứng dụng đang hoạt động 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 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. Hãy xem phần Các phần tử trong 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 một đ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 gặp điểm cuối, thì ứng dụng sẽ không khởi động như mong đợi.
- Không sao nếu điểm cuối của bạn trả về trạng thái HTTP 404 Not Found.
/healthhoặcHOSTED_TARGET_HEALTH_CHECK_PATHchỉ đượ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 NPM
Các phiên bản Node.js mới hơn sử dụng một phiên bản NPM dùng /root/.npm cho bộ nhớ đệm NPM.
Vị trí này gây ra vấn đề cho Hosted Targets vì vị trí thư mục đó ở chế độ chỉ đọc do thời gian chạy Hosted Target sử dụng hệ thống tệp tmpfs mà chỉ /tmp 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 mà không cần NPM
Theo mặc định, Hosted Targets sử dụng npm start để chạy ứng dụng Hosted Target. Nhưng trong tác vụ trước, chúng ta đã thảo luận về một 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 thể ghi và khiến Hosted Target không khởi động được. Mặc dù nhiệm vụ trước sẽ giải quyết vấn đề này, nhưng một lựa chọn khác là chạy ứng dụng mà không cần NPM. Để thực hiện việc này, bạn có thể dùng các giá trị command và args trong app.yamltệp của ứng dụng (tệp kê khai) để chạy Trình lưu trữ mục tiêu 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
node index.js chỉ là một ví dụ.