Đính kèm một chính sách vào ProxyEndpoint hoặc TargetEndpoint Flow

Bạn đang xem tài liệu về Apigee Edge.
Tham khảo tài liệu về Apigee X.
thông tin

Chính sách không được thực thi cho đến khi được đính kèm vào Flow. Bạn có thể tạo một tệp đính kèm Chính sách bằng cách đặt tên cho một Chính sách trong cấu hình Bước.

Việc lựa chọn điểm đính kèm rất quan trọng đối với hoạt động của proxy API. Ví dụ: nếu bạn đính kèm chính sách Hạn mức vào một Luồng phản hồi, thì Hạn mức đó sẽ được thực thi sau khi thông báo yêu cầu được gửi đến dịch vụ phụ trợ. Điều đó sẽ không đạt được mục đích áp dụng chính sách Hạn mức! Do đó, bạn cần đính kèm chính sách về Hạn mức làm Bước xử lý trên Quy trình yêu cầu.

Định dạng của tệp đính kèm chính sách là:

<Step>
    <Name>{policy_name}</Name>
</Step>

Ví dụ:

<Step>
    <Name>QuotaPolicy</Name>
</Step>

Chính sách sẽ được đính kèm vào một Luồng bằng cách thêm cấu hình Bước vào phần tử Luồng phản hồi hoặc yêu cầu thích hợp trong cấu hình ProxyEndpoint hoặc TargetEndpoint.

Bạn có thể đính kèm chính sách vào Luồng yêu cầu hoặc phản hồi. Luồng yêu cầu và phản hồi được chia nhỏ hơn thành PreFlow và PostFlow.

Ví dụ sau minh hoạ cấu hình ProxyEndpoint tối thiểu, không có tệp đính kèm về chính sách. Mã này chỉ xác định HTTPProxyConnection (đến) và RouteRule.

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

Bạn phải sửa đổi cấu hình này để ProxyEndpoint thực thi chính sách Hạn mức (dưới dạng một Bước xử lý) trước khi proxy API thực hiện bất kỳ quá trình xử lý nào khác. Nếu nhà phát triển đã vượt quá Hạn mức, thì bạn không muốn lãng phí tài nguyên điện toán vào các yêu cầu bổ sung.

Để thực thi cấu hình này, bạn sẽ đính kèm một Bước xử lý vào PreFlow của yêu cầu như sau:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

Đôi khi, bạn có thể muốn một chính sách thực thi sau một số quá trình xử lý ban đầu khác trên ProxyEndpoint. Ví dụ: bạn muốn kiểm tra Hạn mức trong PreFlow, sau đó thực hiện một nhóm xử lý khác sau khi kiểm tra Hạn mức, chẳng hạn như chuyển đổi yêu cầu từ JSON sang XML. Để làm như vậy, hãy đính kèm một chính sách vào đường dẫn yêu cầu PostFlow. Sau đây là tệp đính kèm PostFlow yêu cầu mẫu. Chính sách này sẽ thực thi trên thông báo yêu cầu sau khi tất cả các chính sách trong PreFlow (và mọi luồng có điều kiện) thực thi.

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

Dưới đây là tệp đính kèm PostFlow phản hồi mẫu. Chính sách này sẽ thực thi trên thông báo phản hồi. (Phản hồi ProxyEndpoint PostFlow là giai đoạn xử lý cuối cùng trước khi phản hồi được trả về ứng dụng khách yêu cầu.)

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>