<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보

대상
Apigee Edge에서 사용할 수 있는 키-값 맵 (KVM) 저장소에 대한 정책 기반 액세스를 제공합니다. PUT, GET 또는 DELETE 작업을 지정하는 KeyValueMapOperations 정책을 구성하여 이름이 지정된 기존 맵에서 키/값 쌍을 저장, 검색, 삭제할 수 있습니다. 정책에서 최소한 한 개 이상의 작업을 수행해야 합니다.
동영상
KVM에 대해 자세히 알아보려면 다음 동영상을 시청하세요.
동영상 | 설명 |
---|---|
키-값 맵이 중요한 이유 | KVM이 필요한 이유와 작동 방식을 알아보세요. |
UI를 사용하여 KVM을 만들고 런타임 시 KVM 검색 | KVM을 만들고 KVM 정책을 사용하여 값을 검색하고 흐름 변수를 사용하여 값을 API 요청에 삽입합니다. |
API 런타임 시 KVM 만들기 및 업데이트 | KVM 정책을 사용하여 API 런타임 시 KVM을 만듭니다. |
KVM을 캐시하여 성능 향상 | 데이터를 캐시하여 KVM 정책의 성능을 향상시킵니다. |
암호화된 KVM 저장 | 민감한 정보를 KVM에 암호화된 형식으로 저장하고 KVM 정책 및 비공개 변수를 사용하여 런타임 시 값을 가져옵니다. |
KVM 범위를 사용하여 액세스 관리 | KVM 정책 범위 속성을 사용하여 KVM을 조직, 환경, API 프록시, 또는 API 프록시 버전으로 제한합니다. |
API 런타임 시 KVM 항목 삭제 | KVM 정책 DELETE 작업을 사용하여 API 런타임 시 KVM 항목을 삭제합니다. |
샘플
KVM에 리터럴 적용하기
다음 정책을 실행하면 암호화된 KVM이 생성됩니다.
FooKVM
를 만들고 다음 명령어를 사용하여 FooKey_1
라는 키를 만듭니다.
리터럴 문자열 foo
및 bar
로 설정된 두 개의 값
(변수에서 추출된 값으로 설정되지 않음)
GET
는 색인 번호를 지정하는 다음 예시에서 키입니다.
원하는 값을 가져올 수 있습니다.
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="FooKVM" mapIdentifier="FooKVM"> <DisplayName>FooKVM</DisplayName> <ExpiryTimeInSecs>86400</ExpiryTimeInSecs> <Scope>environment</Scope> <Put> <Key> <Parameter>FooKey_1</Parameter> </Key> <Value>foo</Value> <Value>bar</Value> </Put> </KeyValueMapOperations>
범위는 'environment'입니다. 즉, 관리 영역에서 KVM을 볼 수 있으며 API > 환경 구성 > 키-값 맵을 참조하세요. 이 페이지에 표시된 KVM은 모두 선택한 환경으로 범위가 지정됩니다.
리터럴에서 KVM 가져오기
이 정책은 이전 예시의 FooKVM
맵을 검토하고 FooKey_1
키에서 두 번째 값(색인='2')을 가져와 foo_variable
변수에 보관합니다.
<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM"> <DisplayName>GetKVM</DisplayName> <ExpiryTimeInSecs>86400</ExpiryTimeInSecs> <Scope>environment</Scope> <Get assignTo="foo_variable" index="2"> <Key> <Parameter>FooKey_1</Parameter> </Key> </Get> </KeyValueMapOperations>
KVM에 변수 적용하기
유용한 키 값 맵의 간단한 예시는 URL 단축 서비스입니다. 키 값 맵은 해당 전체 URL과 함께 단축 URL을 저장하도록 구성할 수 있습니다.
이 정책 샘플은 키 값 맵을 만듭니다. 정책은 2개의 연관된 값이 있는 키를 'urlMapper'라는 키/값 맵에 PUT합니다.
<KeyValueMapOperations name="putUrl" mapIdentifier="urlMapper"> <Scope>apiproxy</Scope> <Put override="true"> <Key> <Parameter ref="urlencoding.requesturl.hashed"/> </Key> <Value ref="urlencoding.longurl.encoded"/> <Value ref="request.queryparam.url"/> </Put> </KeyValueMapOperations>
이 예시에서 urlencoding.requesturl.hashed
키는 커스텀 변수의 예시입니다. 해싱된 요청 URL은 코드(예: 자바스크립트 또는 자바)에 의해 생성된 다음 이 변수에 저장됩니다. 여기서 KeyValueMapOperations 정책은 여기에 액세스할 수 있습니다.
requesturl.hashed
키마다 2개의 값이 저장됩니다.
- 이름이
urlencoding.longurl.encoded
인 맞춤 변수의 콘텐츠 - 사전 정의된 변수
request.queryparam.url
의 콘텐츠
예를 들어 런타임 시 정책이 실행되면 변수 값이 다음과 같을 수 있습니다.
urlencoding.requesturl.hashed: ed24e12820f2f900ae383b7cc4f2b31c402db1be
urlencoding.longurl.encoded: http://tinyurl.com/38lwmlr
request.queryparam.url: http://apigee.com
다음 키/값 맵과 항목이 Edge의 키/값 저장소에 생성되고 정책이 연결된 API 프록시로 범위가 지정됩니다.
{ "entry" :[ { "name" : "ed24e12820f2f900ae383b7cc4f2b31c402db1be", "value" : "http://tinyurl.com/38lwmlr,http://apigee.com" } ], "name" : "urlMapper" }
항목은 삭제될 때까지 유지됩니다. 키-값 저장소 항목은 에지의 인스턴스를 모니터링할 수 있습니다
변수에서 KVM 가져오기
유용한 키-값 맵의 간단한 예는 URL '축약'입니다. 있습니다. 키 값 맵은 해당 전체 URL과 함께 단축 URL을 저장하도록 구성할 수 있습니다.
키/값 맵 항목의 값을 검색하려면(예: KeyValueMapOperations PUT 탭에 설명된 값) 키 값 맵을 가져오도록 정책을 구성합니다.
<KeyValueMapOperations name="getUrl" mapIdentifier="urlMapper"> <Scope>apiproxy</Scope> <Get assignTo="urlencoding.shorturl" index='1'> <Key> <Parameter ref="urlencoding.requesturl.hashed"/> </Key> </Get> </KeyValueMapOperations>
이 정책이 실행될 때 urlencoding.requesturl.hashed
변수의 값이 ed24e12820f2f900ae383b7cc4f2b31c402db1be
이면 이름이 urlencoding.shorturl
인 맞춤 변수가 http://tinyurl.com/38lwmlr
값과 함께 설정됩니다.
이제 데이터를 검색했으므로 다른 정책과 코드에서 이러한 변수의 값을 추출하여 데이터에 액세스할 수 있습니다.
KVM에서 암호화된 값 가져오기
키-값 맵이 암호화된 경우 'private.
'를 사용하여 값을 검색합니다.
접두사를 assignTo
속성 값에 입력합니다. 이 예에서 변수
private.encryptedVar
는 키 값 맵의 복호화된 값을 보유합니다.
foo
키. 암호화된 키-값 맵 생성에 대한 자세한 내용은
키/값 맵에
관리 API를 사용합니다.
<KeyValueMapOperations name="getEncrypted" mapIdentifier="encrypted_map"> <Scope>apiproxy</Scope> <Get assignTo="private.encryptedVar" index='1'> <Key> <Parameter>foo</Parameter> </Key> </Get> </KeyValueMapOperations>
이제 데이터를 검색했으므로 다른 정책과 코드에서 해당 변수의 값을 추출하여 데이터에 액세스할 수 있습니다.
요소 참조
요소 참조는 KeyValueMapOperations 정책의 요소 및 속성을 설명합니다.
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="urlMapper" > <DisplayName>Key Value Map Operations 1</DisplayName> <Scope>environment</Scope> <ExpiryTimeInSecs>300</ExpiryTimeInSecs> <InitialEntries> <Entry> <Key> <Parameter>key_name_literal</Parameter> </Key> <Value>value_literal</Value> </Entry> <Entry> <Key> <Parameter>variable_name</Parameter> </Key> <Value>value_1_literal</Value> <Value>value_2_literal</Value> </Entry> </InitialEntries> <Put override="false"> <Key> <Parameter>key_name_literal</Parameter> </Key> <Value ref="variable_name"/> </Put> <Get assignTo="myvar" index="1"> <Key> <Parameter ref="variable_name"/> </Key> </Get> <Delete> <Key> <Parameter>key_name_literal</Parameter> </Key> </Delete> </KeyValueMapOperations>
<KeyValueMapOperations> 속성
다음 예시는 <KeyValueMapOperations>
태그의 속성을 보여줍니다.
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="map_name">
다음 표에서는 <KeyValueMapOperations>
태그와 관련된 속성을 설명합니다.
속성 | 설명 | 기본값 | 상태 |
---|---|---|---|
mapIdentifier |
이 API로 만든 지도에 액세스할 때 사용할 식별자를 지정합니다. 정책 또는 관리 UI에서 확인할 수 있습니다. 퍼블릭 클라우드용 Apigee Edge에서 KVM 이름은 대소문자를 구분합니다.
예를 들어 이 속성을 제외하면 organization/environment/apiproxy 범위 내에서 |
해당 없음 | 선택 |
다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.
속성 | 설명 | 기본값 | 현재 상태 |
---|---|---|---|
name |
정책의 내부 이름입니다. 원하는 경우 |
해당 없음 | 필수 |
continueOnError |
정책이 실패할 경우 오류가 반환되도록 하려면 정책이 실패해도 흐름 실행이 계속되도록 하려면 |
거짓 | 선택사항 |
enabled |
정책을 시행하려면 정책을 중지하려면 |
참 | 선택사항 |
async |
이 속성은 지원이 중단되었습니다. |
거짓 | 지원 중단됨 |
<DisplayName> 요소
name
속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.
<DisplayName>Policy Display Name</DisplayName>
기본값 |
해당 없음 이 요소를 생략하면 정책 |
---|---|
현재 상태 | 선택사항 |
유형 | 문자열 |
<Delete> 요소
지정된 키-값 쌍을 삭제합니다. <Get>
, <Put>
, <Delete>
중 하나 이상을 사용해야 합니다.
상위 요소에서 mapIdentifier
속성을 사용하여 KVM의 이름을 지정해야 합니다. 예를 들면 다음과 같습니다.
<Delete> <Key> <Parameter>key_name_literal</Parameter> </Key> </Delete>
기본값 | 해당 사항 없음 |
---|---|
현재 상태 | <Get> 또는 <Put> 이 없는 경우 필수입니다. |
유형 | 해당 사항 없음 |
<Entry> 요소
초기화될 때 키 값 맵에 입력되는 키 값 맵의 시드 값입니다.
퍼블릭 클라우드용 Edge의 경우 키 크기는 2KB로 제한됩니다. 예를 들면 다음과 같습니다.
<InitialEntries> <Entry> <Key> <Parameter>key_name_literal</Parameter> </Key> <Value>v1</Value> </Entry> <Entry> <Key> <Parameter>key_name_variable</Parameter> </Key> <Value>v3</Value> <Value>v4</Value> </Entry> </InitialEntries>
기본값 | 해당 사항 없음 |
---|---|
접속 상태 | 선택사항 |
유형 | 해당 사항 없음 |
<ExclusiveCache> 요소
지원이 중단되었습니다. 대신 <Scope>
요소를 사용하세요.
<ExpiryTimeInSecs> 요소
Edge가 캐시된 값을 지정할 수 있습니다
값이 0 또는 -1이거나 이 요소를 제외한다는 것은 기본값 300초가 사용된다는 의미입니다. 예를 들면 다음과 같습니다.
<ExpiryTimeInSecs>600</ExpiryTimeInSecs>
기본값 | 300 (5분) |
---|---|
현재 상태 | 선택사항 |
유형 | 정수 |
KVM은 키와 값을 NoSQL 데이터베이스에 저장하는 장기 지속성 메커니즘입니다. 이 때문에 런타임 시 KVM에서 읽기를 수행하면 프록시 성능이 저하될 수 있습니다. 개선을 위해 Edge에는 런타임 중에 메모리에 KVM 키/값을 캐시하는 메커니즘이 내장되어 있습니다. 이 KVM 작업 정책은 GET 작업의 경우 항상 캐시에서 읽습니다.
<ExpiryTimeInSecs>
요소를 사용하면 정책에 사용되는 키/값이 KVM에서 다시 새로고침되기 전에 캐시에 저장되는 기간을 제어할 수 있습니다. 하지만
GET과 PUT 작업이 캐시 만료에 미치는 영향 간에는 몇 가지 차이점이 있습니다.
GET - KVM GET 작업이 처음 실행되면 KVM에서 요청된 키/값(정책의 루트 mapIdentifier
속성에 이름이 지정됨)이 캐시에 로드됩니다. 여기서 다음 중 하나가 발생할 때까지 키/값이 후속 GET 작업에 사용됩니다.
<ExpiryTimeInSecs>
에 지정된 시간(초)이 만료됩니다.
또는- KVM 정책의 PUT 작업은 기존 값을 덮어씁니다(아래 설명 참조).
PUT - PUT 작업은 지정된 KVM에 키/값을 씁니다. PUT이
기존에 캐시에 있는 키에 쓰기 작업을 수행하므로 해당 캐시는 즉시 새로고침되고
정책의
<ExpiryTimeInSecs>
요소
예시 - KVM 캐싱
- GET 연산은 'rating' 값을 검색하여 그러면 '10'이라는 값이 추가됩니다. 캐시합니다. 이
정책의
<ExpiryTimeInSecs>
값은 60입니다. - 30초 후 GET 정책이 다시 실행되고 '10'을 검색합니다. 삭제합니다.
- 5초 후 PUT 정책은 'rating' 값을 '8'로 업데이트하고 PUT 정책의
<ExpiryTimeInSecs>
은 20입니다. 캐시는 새 값으로 즉시 새로고침되며, 20초 동안 캐시에 보관되는 것으로 설정됩니다. PUT이 시작되지 않은 경우 첫 번째 GET에서 처음에 채워진 캐시는 처음 60초에서 남아서 30초 더 계속 존재합니다. - 15초 후에 또 다른 GET이 실행되고 '8' 값이 검색됩니다.
<Get> 요소
지정된 키의 값을 검색합니다. <Get>
, <Put>
, <Delete>
중 하나 이상을 사용해야 합니다.
상위 요소에서 mapIdentifier
속성을 사용하여 KVM의 이름을 지정해야 합니다.
정책에 여러 Get
블록을 포함하여 KVM에서 여러 항목을 검색할 수 있습니다.
기본값 | 해당 사항 없음 |
---|---|
현재 상태 | <Put> 또는 <Delete> 이 없는 경우 필수입니다. |
유형 | 해당 없음 |
KVM에서 단일 항목 가져오기
<Get assignTo="myvar" index="1"> <Key> <Parameter>key_name_literal</Parameter> </Key> </Get>
KVM에서 여러 항목 가져오기
다음 예시에서는 다음 키와 값이 있는 KVM을 가정합니다. KVM은 지금까지 가장 인기 있는 영화의 러닝 목록을 저장하는 것 외에 모든 주요 영화의 감독 이름을 저장합니다.
키 | 값 |
---|---|
top_movies | Princess Bride, The Godfather, Citizen Kane |
Citizen Kane | Orson Welles |
Princess Bride | Rob Reiner |
The Godfather | Francis Ford Coppola |
다음은 현재 가장 인기 있는 영화 및 감독의 이름을 검색하는 데 사용할 수 있는 KVM 정책 구성입니다.
<Get assignTo="top.movie.pick" index="1"> <Key> <Parameter>top_movies</Parameter> </Key> </Get> <Get assignTo="movie.director"> <Key> <Parameter ref="top.movie.pick"/> </Key> </Get>
API 프록시가 호출되면 Edge는 다음을 만듭니다. 변수가 있습니다.
top.movie.pick=Princess Bride
movie.director=Rob Reiner
속성
다음 표에서는 <Get>
요소의 속성을 설명합니다.
속성 | 설명 | 기본값 | 상태 |
---|---|---|---|
assignTo |
검색한 값을 할당해야 하는 변수입니다. 키 값 맵이 암호화되어 있으면 assignTo 이름을 ' <Get assignTo="private.myvar"> 프리픽스를 사용하지 않고 암호화된 키 값 맵을 가져오려고 하면 정책에 오류가 발생합니다. 디버깅 중 기본 보안 목적에 필요한 프리픽스는 API 프록시 Trace 및 디버그 세션에서의 암호화된 값을 숨깁니다. 암호화된 키 값 맵 만들기에 대한 자세한 내용은 키/값 맵 관리 API 및 환경 키 값 맵 만들기 및 수정의 '만들기' 주제를 참조하세요. |
해당 없음 | 필수 |
색인 |
값이 여러 개인 키에서 가져올 항목의 색인 번호(1부터 시작하는 색인)입니다.
예를 들어 예시는 'KVM에서 암호화된 값 가져오기'를 참고하세요. Samples(샘플)의 탭 |
해당 없음 | 선택사항 |
<InitialEntries> 요소
초기화될 때 키 값 맵에 입력되는 키 값 맵의 시드 값입니다.
상위 요소에서 mapIdentifier
속성을 사용하여 KVM의 이름을 지정해야 합니다. 예를 들면 다음과 같습니다.
<InitialEntries> <Entry> <Key> <Parameter>key_name_literal</Parameter> </Key> <Value>v1</Value> </Entry> <Entry> <Key> <Parameter>key_name_variable</Parameter> </Key> <Value>v3</Value> <Value>v4</Value> </Entry> </InitialEntries>
이 요소를 사용하는 경우 배포된 버전의 관리 UI에 정책을 저장하는 경우 이 요소를 사용하여 정책이 포함된 API 프록시 번들을 배포하거나 KVM에서 암호화되지 않은 상태로 자동 생성됩니다. 정책 값이 KVM의 값과 다르면 KVM의 값이 프록시 배포 시 덮어쓰기 됩니다. 모든 새 키-값은 기존 키-값과 함께 기존 KVM에 추가됩니다.
이 요소에 의해 채워진 키와 값은 리터럴이어야 합니다. 예를 들어 <Parameter
ref="request.queryparam.key">
는 이 요소 내에서 지원되지 않습니다.
키 크기는 퍼블릭 클라우드용 Edge와 비공개 권한의 에지. KVM 값은 2KB로 제한됩니다.
암호화된 KVM을 만들려면 키/값 지도 관리 API를 사용합니다.
기본값 | 해당 사항 없음 |
---|---|
접속 상태 | 선택사항 |
유형 | 해당 사항 없음 |
<Key> 요소
키/값 맵 항목의 키를 지정합니다. 키는 복합적일 수 있습니다. 즉, 둘 이상의 매개변수를 추가하여 키를 만들 수 있습니다. 예를 들어 userID
및 role
을 조합하여 key
을 만들 수 있습니다. 예를 들면 다음과 같습니다.
<Key> <Parameter>key_name_literal</Parameter> </Key>
키 이름 설정 방법에 대한 자세한 내용은 <Parameter> 요소를 참조하세요.
퍼블릭 클라우드용 Edge에서는 키 크기가 2KB로 제한됩니다. 자세한 내용은 Public Cloud API용 Edge와 Private Cloud API의 차이점을 참조하세요.
기본값 | 해당 사항 없음 |
---|---|
접속 상태 | 선택사항 |
유형 | 해당 없음 |
<Parameter> 요소
키/값 쌍의 키를 지정합니다. 이 요소는 키/값 쌍을 생성, 삽입, 검색, 삭제할 때 이름을 지정합니다.
다음을 사용하여 이름을 지정할 수 있습니다.
-
리터럴 문자열
<Key> <Parameter>literal</Parameter> </Key>
-
ref
속성을 사용하여 런타임 시 가져올 변수<Key> <Parameter ref="variable_name"/> </Key>
-
리터럴 및 변수 참조의 조합
<Key> <Parameter>targeturl</Parameter> <Parameter ref="apiproxy.name"/> <Parameter>weight</Parameter> </Key>
키 요소에 여러 매개변수 요소가 포함된 경우 유효 키 문자열은 각 매개변수의 값을 연결하여 이중 밑줄로 결합합니다. 예를 들어
위의 예에서 apiproxy.name
변수의 값이 'abc1'이면
유효 키는 targeturl__abc1__weight
입니다.
키-값 항목을 가져오거나 업데이트하거나 삭제하는 경우 키 이름은 키-값 맵의 키 이름입니다. 가이드라인은 키 이름 지정 및 검색을 참조하세요.
기본값 | 해당 사항 없음 |
---|---|
접속 상태 | 필수 |
유형 | 문자열 |
속성
다음 표에서는 <Parameter>
요소의 속성을 설명합니다.
속성 | 설명 | 기본값 | 접속 상태 |
---|---|---|---|
참조 | 생성하거나 가져오거나 삭제하려는 키의 정확한 이름이 포함된 변수의 이름을 지정합니다. | 해당 없음 | 여는 태그와 닫는 태그 사이에 리터럴 값이 제공되지 않은 경우 필수입니다. 리터럴 값이 제공되면 금지됩니다. |
<Put> 요소
키 값 맵이 암호화되었는지 여부와 관계없이 키 값 맵에 키/값 쌍을 씁니다. 상위 요소의 mapIdentifier
속성에 지정된 키 값 맵이 없으면 맵이 (암호화되지 않은 상태로) 자동으로 생성됩니다. 키 값 맵이 이미 있으면 키/값이 맵에 추가됩니다.
암호화된 키-값 맵을 만들려면 다음을 사용합니다. 키-값 지도 관리 API 또는 환경 키-값 맵 만들기 및 수정을 참고하세요. UI에서 암호화된 환경 범위 KVM을 만듭니다.
<ph type="x-smartling-placeholder"><Put override="false"> <Key> <Parameter ref="mykeyvar"/> </Key> <Value ref="myvalvar1"/> </Put>
기본값 | 해당 사항 없음 |
---|---|
현재 상태 | <Get> 또는 <Delete> 이 없는 경우 필수입니다. |
유형 | 해당 없음 |
속성
다음 표에서는 <Put>
요소의 속성을 설명합니다.
속성 | 설명 | 기본값 | 현재 상태 |
---|---|---|---|
override |
|
false |
선택사항 |
<Scope> 요소
키-값 맵에 대한 접근성의 경계를 정의합니다. 기본 범위는 environment
입니다. 즉, 기본적으로 맵 항목은 환경(예: 테스트 또는 프로덕션)에서 실행되는 모든 API 프록시에서 공유합니다. 범위를
apiproxy
를 포함하는 경우 키-값 맵의 항목은 사용자가 직접
지도에 값을 씁니다.
맵 또는 맵 항목에 액세스하면 지도를 만들 때 사용한 범위 값 값을 지정해야 합니다. 예를 들어 apiproxy
범위로 맵을 만든 경우 값을 검색하거나 변경사항을 적용하거나 항목을 삭제할 때 apiproxy
범위를 사용해야 합니다.
<Scope>environment</Scope>
기본값 | environment |
---|---|
접속 상태 | 선택사항 |
유형 | 문자열 |
유효한 값: |
|
<Value> 요소
키 값을 지정합니다. 값을 리터럴 문자열로 지정하거나 ref
속성을 사용하여 런타임 시 검색할 수 있는 변수로 사용할 수 있습니다.
<!-- Specify a literal value --> <Value>literal<Value>
또는
<!-- Specify the name of variable value to be populated at run time. --> <Value ref="variable_name"/>
<Value>
요소를 여러 개 포함하여 여러 부분으로 구성된 값을 지정할 수도 있습니다. 런타임 시 값이 결합됩니다.
다음 예시에서는 KVM에 두 개의 키가 추가됩니다.
- 값이
v1,v2
인 키k1
- 값이
v3,v4
인 키k2
<InitialEntries> <Entry> <Key> <Parameter>k1</Parameter> </Key> <Value>v1</Value> <Value>v2</Value> </Entry> <Entry> <Key> <Parameter>k2</Parameter> </Key> <Value>v3</Value> <Value>v4</Value> </Entry> </InitialEntries>
다음 예시에서는 두 개의 값이 있는 키 하나가 생성됩니다. 조직 이름이 foo_org
이고, API 프록시 이름이 bar
이고, 환경이 test
라고 가정합시다.
- 값이
bar,test
인 키foo_org
<Put> <Key> <Parameter ref="organization.name"/> </Key> <Value ref="apiproxy.name"/> <Value ref="environment.name"/> </Put>
기본값 | 해당 사항 없음 |
---|---|
접속 상태 | 필수 |
유형 | 문자열 |
속성
다음 표에서는 <Value>
요소의 속성을 설명합니다.
속성 | 설명 | 기본값 | 접속 상태 |
---|---|---|---|
참조 | 설정하려는 키 값이 포함된 변수의 이름을 지정합니다. | 해당 없음 | 여는 태그와 닫는 태그 사이에 리터럴 값이 제공되지 않은 경우 필수입니다. 리터럴 값이 제공되면 금지됩니다. |
오류 참조
Edge 정책에서 반환된 오류는 오류 코드 참조에 설명된 대로 일관된 형식을 따릅니다.
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed |
500 |
This error occurs if you try to retrieve a value from an encrypted key value map and set
the value to a variable whose name does not have the prefix |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
This error occurs if the |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidIndex |
If the index attribute specified in the <Get> element of Key Value Map Operations policy is
zero or a negative number, then the deployment of the API proxy fails. The index starts from
1 , so an index of zero or negative integer is considered as invalid.
|
build |
KeyIsMissing |
This error occurs if the <Key> element is completely missing or <Parameter> element is
missing within <Key> element underneath the <Entry> of the <InitialEntries> element
of the Key Value Map Operations policy.
|
build |
ValueIsMissing |
This error occurs if the <Value> element is missing underneath the <Entry> element of
the <InitialEntries> element of the Key Value Map Operations policy. |
build |
스키마
사용 참고사항
키-값 맵의 개요는 키 값 맵 사용을 참조하세요.
키-값 맵 저장소는
키-값 쌍입니다. 정책 또는 코드를 통해 런타임 시 이에 액세스할 수 있습니다. 맵에는 key=value
형식의 임의 데이터가 포함됩니다.
예를 들면 localhost=127.0.0.1
, zip_code=94110
, 또는 first_name=felix
입니다. 첫 번째 예시에서 localhost
는 키이고 127.0.0.1
은 값입니다. 각 키-값 쌍은 키 값 맵의 항목으로 저장됩니다. 키-값 맵은 여러 항목을 저장할 수 있습니다.
다음은 키-값 맵을 사용하는 예입니다. IP 주소 목록을 저장하고
다양한 백엔드 및
지원합니다 ipAddresses
라는 키-값 맵을 만들 수 있으며, 여기에는
키-값 쌍의 목록입니다. 예를 들어 이 JSON은 다음 맵을 나타낼 수 있습니다.
{ "entry" : [ { "name" : "Development", "value" : "65.87.18.18" }, { "name" : "Staging", "value" : "65.87.18.22" } ], "name" : "ipAddresses" }
이 구조를 사용하여 정책에서 사용할 수 있는 IP 주소 저장소를 만들 수 있습니다. 런타임 시 IP 허용 목록 또는 차단 목록을 적용하고 백엔드 대상을 동적으로 선택할 수 있습니다. 지정할 수 있습니다. 일반적으로 KeyValueMapOperations 정책은 여러 요청/응답 트랜잭션에 재사용해야 하는 장기 정보를 저장하거나 가져오는 데 사용됩니다.
키/값 맵은 KeyValueMapOperations 정책을 통해 조작하거나 Apigee Edge 관리 API를 참조하세요. 조직 키/값 지도 API API에 대한 자세한 내용은 관리 API 참조를 확인하세요. API를 사용하여 예를 들어 대용량 데이터 세트를 키/값 저장소에 업로드하거나 키/값을 관리하는 스크립트를 만듭니다. 매핑 항목을 사용하면 됩니다. 먼저 API로 키/값 맵을 만든 다음 KeyValueMapOperations 정책
키 이름 지정 및 검색
<Parameter>
및 <Value>
요소를 사용하면 리터럴 값(여는 태그와 닫는 태그 사이의 값)을 지정하거나 ref
속성을 사용하여 런타임 시에 사용해야 하는 변수의 이름을 지정할 수 있습니다.
Parameter 요소는 특정 값을 나타내는 키의 이름을 결정하기 때문에 특별히 언급해야 합니다. 가져오거나 삭제할 키 이름을 지정할 수 있습니다. 다음은 두 가지 예시입니다. 첫 번째 예시에서는 키 이름을 구체적으로 지정하고, 두 번째 예시에서는 변수를 사용하여 키 이름을 지정합니다. KVM에 키를 만들 때 다음을 사용한다고 가정해 보겠습니다.
<Parameter>key_name_literal</Parameter> <Parameter ref="key.name.variable"/>
첫 번째 인스턴스에서 'key_name_literal'의 리터럴 값은 KVM에 키로 저장되기 때문에
있습니다. 두 번째 경우에는 key.name.variable
에 있는 값이 무엇이든지
KVM의 키 이름입니다. 예를 들어 key.name.variable
에
값이 foo
이면 키 이름은 'foo'가 됩니다.
GET 작업으로 키 및 키 값을 검색하거나 DELETE 작업을 사용하여 삭제하려면 <Parameter> 설정을 KVM의 키 이름과 일치하도록 해야 합니다. 예를 들어 KVM의 키 이름이 'foo'인 경우 <Parameter>foo</Parameter>
를 사용하여 리터럴 값을 지정하거나 <Parameter ref="variable.containing.foo"/>
와 같이 정확한 값 'foo'를 포함하는 변수를 지정할 수 있습니다.