Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Ví dụ này minh hoạ cách sử dụng Bộ chuyển đổi Apigee cho Envoy bằng Apigee Edge.
Điều kiện tiên quyết
Trước khi bắt đầu: |
---|
|
Tổng quan
Ví dụ này giải thích cách sử dụng Bộ chuyển đổi Apigee cho Envoy với Apigee Edge for Public Cloud. Các lệnh gọi proxy API truyền qua Envoy chạy dưới dạng ứng dụng gốc với Edge, cung cấp các dịch vụ quản lý API thông qua Apigee Remote Service for Envoy.
Hình sau đây cho thấy cấu trúc cơ bản của quá trình tích hợp Apigee Edge:
Proxy Envoy và Dịch vụ từ xa đang chạy cục bộ. Envoy xử lý lưu lượng truy cập API đến và đi từ dịch vụ mục tiêu, đồng thời giao tiếp với Dịch vụ từ xa. Dịch vụ từ xa cũng giao tiếp với Apigee Edge Cloud để truy xuất thông tin về proxy và sản phẩm API.
Cung cấp Apigee Edge
Ở bước này, bạn sẽ sử dụng Remote Service CLI để cung cấp bộ chuyển đổi Apigee cho các tài sản Envoy cho Apigee Edge. Lệnh cấp phép này triển khai một proxy API cho Apigee Edge, đồng thời thiết lập một chứng chỉ trên Apigee và tạo các thông tin xác thực mà Dịch vụ từ xa sẽ dùng để kết nối an toàn từ hệ thống của bạn với Apigee.
- Chuyển đến thư mục
$CLI_HOME
:cd $CLI_HOME
- Tạo các biến môi trường sau. Các biến này sẽ được dùng làm
tham số cho tập lệnh cấp phép:
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export PASSWORD=your_apigee_password
Trong trường hợp:
Biến Nội dung mô tả organization_name Tên tổ chức Apigee của bạn. environment_name Tên của một môi trường trong tổ chức của bạn. your_apigee_username Tên người dùng của tài khoản Apigee bạn. Thông thường, tên người dùng là địa chỉ email. your_apigee_password Mật khẩu Apigee của bạn. - Thực thi lệnh sau để cấp phép proxy dịch vụ từ xa trên Apigee Edge:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
- Kiểm tra nội dung của tệp
config.yaml
. Ứng dụng sẽ có dạng như sau:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
Khoá và giá trị bí mật được dùng để xác thực các yêu cầu từ Proxy dịch vụ từ xa đến Apigee Edge.
Chạy dịch vụ Apigee từ xa for Envoy
Bạn có thể chạy Dịch vụ từ xa dưới dạng một tệp nhị phân gốc hoặc trên Docker.
Chạy dịch vụ gốc
Thực thi tệp nhị phân của dịch vụ bằng tệp cấu hình do lệnh cấp phép xuất ra:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Chạy dịch vụ trên Docker
Hình ảnh Docker được xuất bản với thẻ phát hành. Đối với lượt cài đặt này, hãy sử dụng phiên bản mới nhất. Có 3 biến thể hình ảnh để bạn chọn:
Nội dung đa dạng | Bài đăng có hình ảnh |
---|---|
cạo | google/apigee-envoy-adapter:v1.0.0 |
Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
Ubuntu chứa những dòng mã nhàm chán | google/apigee-envoy-adapter:v1.0.0-boring |
Ví dụ: để chạy hình ảnh ban đầu với config.yaml
cục bộ có sẵn dưới dạng /config.yaml
thông qua phương thức gắn ổ đĩa, hãy sử dụng lệnh sau:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0
Cài đặt và chạy proxy Envoy
Làm theo các bước sau để cài đặt và chạy proxy Envoy:
- Tải một Envoy tệp nhị phân xuống hoặc tạo gói đó, hay sử dụng Docker.
- Chạy Envoy bằng tệp cấu hình mẫu được thiết lập cho dịch vụ
httpbin.org
:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
Kiểm thử bản cài đặt
- Gọi dịch vụ
httpbin
:curl -i http://localhost:8080/httpbin/headers
Dịch vụ này hiện do Apigee quản lý. Vì bạn không cung cấp khoá API nên lệnh gọi sẽ trả về lỗi sau.
curl -i http://localhost:8080/httpbin/headers HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- Định cấu hình sản phẩm API và nhận khoá API như giải thích trong bài viết Cách lấy khoá API.
- Thực hiện lệnh gọi API bằng khoá:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"
Lệnh gọi sẽ thành công với trạng thái 200 và trả về danh sách tiêu đề trong phản hồi. Ví dụ:
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@example.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Các bước tiếp theo
Lưu lượng truy cập API đến dịch vụ httpbin
hiện do Apigee quản lý. Sau đây là một số tính năng mà bạn có thể khám phá và dùng thử:
- Nếu bạn đã định cấu hình sản phẩm API của mình như giải thích trong phần Cách lấy khoá API, thì hạn mức đã được đặt thành 5 yêu cầu mỗi phút. Hãy thử gọi dịch vụ
httpbin
thêm vài lần nữa để kích hoạt hạn mức. Khi vượt quá hạn mức, bạn sẽ thấy lỗi sau:HTTP/1.1 429 Too Many Requests
- Sử dụng Apigee Analytics trong giao diện người dùng Edge. Chuyển đến Analyze > API Metrics > API Proxy Performance (Phân tích > Chỉ số API > Hiệu suất proxy API).
- Tạo và sử dụng mã thông báo JWT để xác thực lệnh gọi API.
- Sử dụng CLI để quản lý, tạo mã thông báo và kiểm soát việc liên kết. Để biết chi tiết về CLI, hãy xem Tài liệu tham khảo.