KeyValueMapOperations 정책

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

Edge UI의 키-값 맵 작업 아이콘

대상

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라는 키를 만듭니다. 리터럴 문자열 foobar로 설정된 두 개의 값 (변수에서 추출된 값으로 설정되지 않음) 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 이름은 대소문자를 구분합니다. 예를 들어 foobarFooBar와 다릅니다.

이 속성을 제외하면 kvmap이라는 KVM이 사용됩니다.

organization/environment/apiproxy 범위 내에서 mapIdentifier 속성을 사용하여 자체 맵 이름을 지정할 수 있습니다.

해당 없음 선택

다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.

속성 설명 기본값 현재 상태
name

정책의 내부 이름입니다. name 속성의 값에는 문자, 숫자, 공백, 하이픈, 밑줄, 마침표가 포함될 수 있습니다. 이 값은 255자(영문 기준)를 초과할 수 없습니다.

원하는 경우 <DisplayName> 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름을 사용하여 정책에 라벨을 지정합니다.

해당 없음 필수
continueOnError

정책이 실패할 경우 오류가 반환되도록 하려면 false로 설정합니다. 이는 대부분의 정책에서 예상되는 동작입니다.

정책이 실패해도 흐름 실행이 계속되도록 하려면 true로 설정합니다.

거짓 선택사항
enabled

정책을 시행하려면 true로 설정합니다.

정책을 중지하려면 false로 설정합니다. 정책이 흐름에 연결되어 있어도 정책이 시행되지 않습니다.

선택사항
async

이 속성은 지원이 중단되었습니다.

거짓 지원 중단됨

<DisplayName> 요소

name 속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.

<DisplayName>Policy Display Name</DisplayName>
기본값

해당 없음

이 요소를 생략하면 정책 name 속성 값이 사용됩니다.

현재 상태 선택사항
유형 문자열

<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 캐싱

  1. GET 연산은 'rating' 값을 검색하여 그러면 '10'이라는 값이 추가됩니다. 캐시합니다. 이 정책의 <ExpiryTimeInSecs> 값은 60입니다.
  2. 30초 후 GET 정책이 다시 실행되고 '10'을 검색합니다. 삭제합니다.
  3. 5초 후 PUT 정책은 'rating' 값을 '8'로 업데이트하고 PUT 정책의 <ExpiryTimeInSecs>은 20입니다. 캐시는 새 값으로 즉시 새로고침되며, 20초 동안 캐시에 보관되는 것으로 설정됩니다. PUT이 시작되지 않은 경우 첫 번째 GET에서 처음에 채워진 캐시는 처음 60초에서 남아서 30초 더 계속 존재합니다.
  4. 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 이름을 'private.'로 시작합니다. 예를 들어 다음과 같습니다.

<Get assignTo="private.myvar">

프리픽스를 사용하지 않고 암호화된 키 값 맵을 가져오려고 하면 정책에 오류가 발생합니다. 디버깅 중 기본 보안 목적에 필요한 프리픽스는 API 프록시 Trace 및 디버그 세션에서의 암호화된 값을 숨깁니다.

암호화된 키 값 맵 만들기에 대한 자세한 내용은 키/값 맵 관리 API환경 키 값 맵 만들기 및 수정의 '만들기' 주제를 참조하세요.

해당 없음 필수
색인

값이 여러 개인 키에서 가져올 항목의 색인 번호(1부터 시작하는 색인)입니다. 예를 들어 index=1을 지정하면 첫 번째 값이 반환되고 assignTo 변수에 할당됩니다. 색인 값이 지정되지 않은 경우 해당 항목의 모든 값은 변수에 java.util.List로 할당됩니다.

예시는 '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> 요소

키/값 맵 항목의 키를 지정합니다. 키는 복합적일 수 있습니다. 즉, 둘 이상의 매개변수를 추가하여 키를 만들 수 있습니다. 예를 들어 userIDrole을 조합하여 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

true로 설정하면 키 값이 재정의됩니다.

false 선택사항

<Scope> 요소

키-값 맵에 대한 접근성의 경계를 정의합니다. 기본 범위는 environment입니다. 즉, 기본적으로 맵 항목은 환경(예: 테스트 또는 프로덕션)에서 실행되는 모든 API 프록시에서 공유합니다. 범위를 apiproxy를 포함하는 경우 키-값 맵의 항목은 사용자가 직접 지도에 값을 씁니다.

맵 또는 맵 항목에 액세스하면 지도를 만들 때 사용한 범위 값 값을 지정해야 합니다. 예를 들어 apiproxy 범위로 맵을 만든 경우 값을 검색하거나 변경사항을 적용하거나 항목을 삭제할 때 apiproxy 범위를 사용해야 합니다.

<Scope>environment</Scope>
기본값 environment
접속 상태 선택사항
유형 문자열
유효한 값:
  • organization
  • environment
  • apiproxy
  • policy(API 프록시 개정)

<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

이 오류는 암호화된 키 값 맵에서 값을 검색하려 하고 이름에 private 프리픽스가 없는 변수로 설정하려고 할 때 발생합니다. 디버깅 중 기본 보안 목적으로 필요한 프리픽스는 API 프록시 Trace 및 디버그 세션에서의 암호화된 값을 숨깁니다.

steps.keyvaluemapoperations.UnsupportedOperationException 500

이 오류는 키 값 맵 작업 정책에서 mapIdentifier 속성이 빈 문자열로 설정된 경우에 발생합니다.

배포 오류

이 오류는 이 정책이 포함된 프록시를 배포할 때 발생할 수 있습니다.

오류 이름 원인 해결
InvalidIndex 키 값 맵 작업 정책의 <Get> 요소에 지정된 index 속성이 0 또는 음수이면 API 프록시 배포에 실패합니다. 색인은 1에서 시작하므로 0 또는 음수인 정수의 색인은 잘못된 것으로 간주됩니다.
KeyIsMissing 이 오류는 <Key> 요소가 완전히 누락되었거나 키 값 맵 작업 정책의 <InitialEntries> 요소 <Entry> 아래 <Key> 요소 내에서 <Parameter> 요소가 누락된 경우에 발생합니다.
ValueIsMissing 이 오류는 키 값 맵 작업 정책의 <InitialEntries> 요소의 <Entry> 요소 아래에 <Value> 요소가 누락된 경우에 발생합니다.

스키마

사용 참고사항

키-값 맵의 개요는 키 값 맵 사용을 참조하세요.

키-값 맵 저장소는 키-값 쌍입니다. 정책 또는 코드를 통해 런타임 시 이에 액세스할 수 있습니다. 맵에는 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'를 포함하는 변수를 지정할 수 있습니다.

관련 주제