4.3. API を使用したプロキシーポリシーチェーンの変更


ポリシーチェーン内のポリシーを管理するには、3scale 管理ポータルを使用するのではなく、アカウント管理 API を使用してください。アカウント管理 API (API と呼ばれます) を使用すると、API トラフィックを制御するプロキシーポリシーチェーンに変更を加えることができます。機能全体を Proxy Policies Chain Update と呼ばれるエンドポイントとして扱い、ポリシーを追加、削除、並べ替え、または変更できます。Proxy Policies Chain Update エンドポイントを使用して API を呼び出します。

PUT /admin/api/services/{service_id}/proxy/policies.json

エンドポイントへの呼び出しには、リクエスト本文に access_token パラメーターと events_config パラメーターを含める必要があります。events_config リクエスト本文パラメーターは、URL エンコードされた JSON 配列である必要があります。配列内の各要素はポリシー設定を表します。

プロキシーポリシーチェーン更新 エンドポイントは、更新されたプロキシーポリシーチェーンを返します。無効な入力はエラーになります。

ポリシーチェーンを確認するには、アカウント管理 API に対して次の GET 呼び出しを使用します。

GET /admin/api/services/{service_id}/proxy/policies.json

GET 呼び出しのポリシーチェーンの出力例

{
  "policies_config": [
    {
      "name": "cors",
      "version": "builtin",
      "configuration": {
        "allow_headers": [],
        "allow_methods": [
          "GET"
        ],
        "allow_origin": "https://example.com",
        "allow_credentials": true
      },
      "enabled": true
    },
    {
      "name": "apicast",
      "version": "builtin",
      "configuration": {},
      "enabled": true
    }
  ]
}

前述の JSON 応答では、policys_config プロパティーのペイロードは プロキシーポリシーチェーン更新 エンドポイントへの呼び出しでの policys_config パラメーターの予期される値を表す配列です。

4.3.1. curl コマンドを使用したポリシーチェーンの更新

次の例は、curl コマンドと jq ツールを使用してプロキシーポリシーチェーンを読み取り、更新する方法を示しています。プレースホルダー値 {admin_portal_url}{service_id}、および {access_token} を環境を表す値に置き換えます。

4.3.1.1. CURL リクエストでの policys_config インラインの指定

手順

  1. 現在のポリシーチェーンを取得します。

    $ curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' -c
    注記
    • curl-s オプションは、リクエストの応答に属さない出力を抑制する "silent" モードを有効にします。
    • jq '.policies_config' は、応答内の policys_config JSON プロパティーからポリシーチェーン配列を抽出します。
    • jq ツールの -c オプションは、複数行を避けるために出力をコンパクトモードで出力します。

    このコマンドは、ポリシーチェーン内の CORS ポリシーと APIcast ポリシーを示す応答を返します。次に例を示します。

    [{"name":"cors","version":"builtin","configuration":{"allow_headers":[],"allow_methods":["GET","POST","PUT"],"allow_origin":"https://example.com","allow_credentials":true},"enabled":true},{"name":"apicast","version":"builtin","configuration":{},"enabled":true}]
  2. チェーン内のポリシーを追加、削除、並べ替えたり、設定を変更したりして、ポリシーチェーンを編集します。
  3. ポリシーチェーンを更新します。

    次の curl コマンドの例では、CORS ポリシーがチェーンから削除されていますが、ポリシーチェーンには引き続き他の変更を加えることができます。

    $ curl -X PUT "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json" -d 'access_token={access_token}' -d 'policies_config=[{"name":"apicast","version":"builtin","configuration":{},"enabled":true}]'

4.3.1.2. ファイルからの policys_config コンテンツの提供

手順

  1. 現在のポリシーチェーンをファイルに保存します。

    curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' > policies_config.json
  2. チェーン内のポリシーを追加、削除、並べ替えたり、設定を変更したりして、policies_config.json ファイル内のポリシーチェーンを編集します。
  3. ポリシーチェーンを更新します。

    $ curl -X PUT "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json" -d 'access_token={access_token}' --data-urlencode policies_config@policies_config.json
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.