<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 정책에서 반환된 오류는 오류 코드 참조에 설명된 대로 일관된 형식을 따릅니다.
이 섹션에서는 반환되는 오류 코드, 오류 메시지, 정책이 오류를 트리거할 때 Edge에서 설정하는 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항 및 오류 처리를 참조하세요.
런타임 오류
이러한 오류는 정책이 실행될 때 발생할 수 있습니다.
오류 코드 | HTTP 상태 | 원인 | 수정 |
---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed |
500 |
이 오류는 암호화된 키 값 맵에서 값을 검색하려 하고 이름에 |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
이 오류는 키 값 맵 작업 정책에서 |
build |
배포 오류
이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.
오류 이름 | 원인 | 해결 |
---|---|---|
InvalidIndex |
키 값 맵 작업 정책의 <Get> 요소에 지정된 index 속성이 0 또는 음수이면 API 프록시 배포에 실패합니다. 색인은 1 에서 시작하므로 0 또는 음수인 정수의 색인은 잘못된 것으로 간주됩니다.
|
build |
KeyIsMissing |
이 오류는 <Key> 요소가 완전히 누락되었거나 키 값 맵 작업 정책의 <InitialEntries> 요소 <Entry> 아래 <Key> 요소 내에서 <Parameter> 요소가 누락된 경우에 발생합니다.
|
build |
ValueIsMissing |
이 오류는 키 값 맵 작업 정책의 <InitialEntries> 요소의 <Entry> 요소 아래에 <Value> 요소가 누락된 경우에 발생합니다. |
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'를 포함하는 변수를 지정할 수 있습니다.