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
インラインの指定
手順
現在のポリシーチェーンを取得します。
$ 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}]
-
- チェーン内のポリシーを追加、削除、並べ替えたり、設定を変更したりして、ポリシーチェーンを編集します。
ポリシーチェーンを更新します。
次の
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
コンテンツの提供
手順
現在のポリシーチェーンをファイルに保存します。
curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' > policies_config.json
-
チェーン内のポリシーを追加、削除、並べ替えたり、設定を変更したりして、
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