4.3. API를 사용하여 프록시 정책 체인 수정
정책 체인에서 정책을 관리하려면 3scale 관리 포털을 사용하는 대신 계정 관리 API를 사용할 수 있습니다. API라고 하는 계정 관리 API를 사용하면 API 트래픽을 제어하는 프록시 정책 체인을 변경할 수 있습니다. 정책을 추가, 제거, 재정렬 또는 수정하여 전체 기능을 프록시 정책 체인 업데이트 라는 엔드포인트로 처리할 수 있습니다. 프록시 정책 체인 업데이트 끝점을 사용하여 API를 호출합니다.
PUT /admin/api/services/{service_id}/proxy/policies.json
엔드포인트 호출에는 요청 본문에 access_token
및 policies_config
매개변수가 포함되어야 합니다. policies_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 응답에서 policies_config
속성의 페이로드는 프록시 정책 체인 업데이트 엔드포인트에 대한 호출에서 policies_config
매개변수의 예상 값을 나타내는 배열입니다.
4.3.1. curl
명령을 사용하여 정책 체인 업데이트
다음 예제에서는 curl
명령과 jq
툴을 사용하여 프록시 정책 체인을 읽고 업데이트하는 방법을 보여줍니다. 자리 표시자 값 {admin_portal_url}
, {service_id}
, {access_token}
을 사용자 환경을 나타내는 값으로 바꿉니다.
4.3.1.1. curl 요청에 policies_config
인라인 제공
프로세스
현재 정책 체인을 가져옵니다.
$ curl -s "{admin_portal_url}/admin/api/services/{service_id}/proxy/policies.json?access_token={access_token}" | jq '.policies_config' -c
참고-
curl
의-s
옵션을 사용하면 "실질" 모드가 요청 응답에 속하지 않는 출력을 억제할 수 있습니다. -
jq '.policies_config'
는 응답의policies_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. 파일에서 policies_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