Sử dụng bộ chuyển đổi Apigee cho Envoy và Apigee Edge

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

Ví dụ này minh hoạ cách sử dụng Trình chuyển đổi Apigee cho Envoy với 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 cho Public Cloud. Các lệnh gọi proxy API chảy qua Envoy chạy dưới dạng ứng dụng gốc, trong đó Edge cung cấp các dịch vụ quản lý API thông qua Dịch vụ từ xa Apigee cho Envoy.

Hình sau đây cho thấy cấu trúc cơ bản để tích hợp Apigee Edge:

Chế độ xem cấp cao của Trình chuyển đổi Envoy chạy gốc để giao tiếp với Apigee Edge Cloud, bao gồm cả vùng quản lý, vùng thời gian chạy và các dịch vụ GCP

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ề sản phẩm API và proxy.

Cấp phép Apigee Edge

Trong bước này, bạn sẽ sử dụng CLI Dịch vụ từ xa để cấp phát Trình chuyển đổi Apigee cho các tài sản Envoy cho Apigee Edge. Lệnh cấp phép 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 thông tin xác thực mà Dịch vụ từ xa sẽ sử dụng để kết nối một cách an toàn từ hệ thống của bạn với Apigee.

  1. Chuyển đến thư mục $CLI_HOME:
    cd $CLI_HOME
  2. 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 Mô tả
    organization_name Tên của 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. Thông thường, tên người dùng là một địa chỉ email.
    your_apigee_password Mật khẩu Apigee của bạn.
  3. 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 --mfa $MFA --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. Kiểm tra nội dung của tệp config.yaml. Mã sẽ có dạng như sau:
    # Configuration for apigee-remote-service-envoy (platform: SaaS)
    # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: apigee-remote-service-envoy
      namespace: apigee
    data:
      config.yaml: |
        tenant:
          internal_api: https://istioservices.apigee.net/edgemicro
          remote_service_api: https://my-username-test.apigee.net/remote-service
          org_name: my-org
          env_name: my-env
          key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664
          secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75

    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ụ từ xa Apigee cho Chuyên viên

Bạn có thể chạy Dịch vụ từ xa dưới dạng 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 dịch vụ bằng tệp cấu hình do lệnh cấp phép tạo 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 phát hành bằng 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. Bạn có thể chọn trong số 3 biến thể hình ảnh sau:

Nội dung đa dạng Hình ảnh
Google không phân phối gcr.io/distroless/base
Ubuntu google/apigee-envoy-adapter:v1.1.0-ubuntu
Ubuntu với mã hoá nhàm chán google/apigee-envoy-adapter:v1.1.0-boring

Ví dụ: để chạy hình ảnh khởi động bằng config.yaml cục bộ dưới dạng /config.yaml thông qua một phương thức gắn phương tiện, hãy sử dụng lệnh sau:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0

Tạo tệp cấu hình mẫu

Dùng lệnh apigee-remote-service-cli samples create để tạo các tệp cấu hình mẫu.

Đối với ví dụ này, bạn cần các tệp được tạo sau:

  • envoy-config.yaml – Cấu hình triển khai cho dịch vụ HTTP.

Cách tạo mẫu:

  1. Chuyển đến thư mục $CLI_HOME.
  2. Thực thi lệnh này để tạo các tệp:

    ./apigee-remote-service-cli samples create --template native -c ./config.yaml

    Các tệp sau đây được xuất vào thư mục ./samples:

    ls samples
    envoy-config.yaml
    

Để biết thêm thông tin, hãy xem phần Lệnh mẫu.

Cài đặt và chạy proxy Envoy

Làm theo các bước sau để cài đặt và chạy proxy Envoy:

  1. Tải tệp nhị phân của Envoy xuống hoặc tạo tệp đó, hoặc sử dụng Docker.
  2. Chạy Envoy bằng tệp cấu hình mẫu mà bạn đã tạo trước đó cho dịch vụ httpbin.org:
    envoy -c $CLI_HOME/samples/envoy-config.yaml

Kiểm thử quá trình cài đặt

  1. Gọi dịch vụ httpbin:
    curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"
    

    Dịch vụ hiện đang do Apigee quản lý và 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 -H "HOST:httpbin.org"
    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
  2. Định cấu hình một 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.
  3. 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 "HOST:httpbin.org" -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ý. Dưới đây là một số tính năng bạn có thể khám phá và thử:

  • Nếu bạn đã định cấu hình sản phẩm API như giải thích trong phần Cách lấy khoá API, thì hạn mức 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 hạn mức đã hết, hệ thống sẽ trả về lỗi trạng thái HTTP 403.
  • Truy cập vào Apigee Analytics trong giao diện người dùng Edge. Chuyển đến phần 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 cá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 các liên kết. Để biết thông tin chi tiết về CLI, hãy xem phần Tài liệu tham khảo.