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
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 /admin/api/services/{service_id}/proxy/policies.json
GET 呼び出しのポリシーチェーンの出力例
前述の 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 インラインの指定 リンクのコピーリンクがクリップボードにコピーされました!
手順
現在のポリシーチェーンを取得します。
curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' -c$ curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' -cCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記-
curlの-sオプションは、リクエストの応答に属さない出力を抑制する "silent" モードを有効にします。 -
jq '.policies_config'は、応答内のpolicys_configJSON プロパティーからポリシーチェーン配列を抽出します。 -
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}][{"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}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- チェーン内のポリシーを追加、削除、並べ替えたり、設定を変更したりして、ポリシーチェーンを編集します。
ポリシーチェーンを更新します。
次の
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}]'$ 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}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3.1.2. ファイルからの policys_config コンテンツの提供 リンクのコピーリンクがクリップボードにコピーされました!
手順
現在のポリシーチェーンをファイルに保存します。
curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' > policies_config.jsoncurl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' > policies_config.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
チェーン内のポリシーを追加、削除、並べ替えたり、設定を変更したりして、
policies_config.jsonファイル内のポリシーチェーンを編集します。 ポリシーチェーンを更新します。
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$ 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.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow