키-값 맵 작업

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

런타임 시 검색을 위해 데이터를 저장하고자 하는 경우가 있습니다. 이러한 데이터는 API 프록시 로직에서 하드 코딩해서는 안 되는 만료되지 않는 데이터입니다. 여기에는 키 값 맵 (KVM)이 적합합니다. KVM은 암호화되거나 암호화되지 않은 키-값 문자열 쌍의 커스텀 컬렉션입니다. 다음은 두 가지 예입니다.

다른 유형의 지속성에 대해 알아보려면 다음을 참조하세요. 캐싱 및 지속성 추가

KVM 시나리오

KVM이 유용한 상황은 다음과 같습니다.

  • 테스트에서 하나의 대상 (또는 서비스 콜아웃) URL을 호출해야 하는 API 프록시가 있습니다. 다른 대상 URL을 지정할 수 있습니다 사이트의 URL을 하드 코딩하는 대신 사용하는 경우 프록시가 해당 환경을 감지하고 관련 키를 실행하도록 할 수 있습니다. Value Map 운영 정책을 검토하고, 사용 중인 KVM 중 하나에서 올바른 대상 URL을 생성됨. 그리고 나중에 타겟 중 하나 또는 둘 다가 변경되면 KVM을 새 URL을 교체합니다. 프록시가 새 값을 가져오며 프록시를 다시 배포할 필요가 없습니다.
  • 사용자 인증 정보, 비공개 키 또는 토큰(예: 외부 서비스, OAuth 토큰 생성에 필요한 사용자 인증 정보, 비공개 키 암호화 또는 JSON 웹 토큰 (JWT) 서명을 위해 Java 콜아웃 또는 JavaScript에서 사용됩니다. 요청에 사용자 인증 정보, 키, 토큰을 전달하거나 프록시 로직으로 하드 코딩하는 대신 KVM(항상 암호화됨)에 저장하고, 이를 필요로 하는 대상에 대한 호출에서 동적으로 검색합니다.

키-값 문자열 쌍의 스토리지가 유용할 수 있는 다른 경우도 있을 수 있습니다. 일반적으로 다음과 같은 경우에 KVM을 사용하는 것이 좋습니다.

  • 런타임 시 코드의 특정 위치에 다른 값이 필요한 경우
  • 민감한 정보는 하드 코딩하지 않고 전달해야 하는 경우
  • 캐시처럼 만료되지 않는 값을 저장하려는 경우

KVM의 범위

범위는 'KVM이 사용 가능한 위치'를 의미합니다. KVM은 organization, environment, apiproxy 범위에서 만들 수 있습니다.

예를 들어 하나의 API 프록시만 KVM의 데이터를 필요로 하는 경우 apiproxy 범위: 해당 API 프록시만 데이터에 액세스할 수 있습니다.

또는 테스트 환경의 모든 API 프록시가 키-값 맵에 액세스하도록 할 수 있습니다. 이 경우 환경 범위에서 키-값 맵을 만듭니다. 'prod' 환경에 배포된 프록시는 '테스트' 환경 범위의 KVM에 액세스할 수 없습니다. 프로덕션에서 동일한 KVM 키를 사용할 수 있도록 하려면 'prod' 환경으로 범위가 지정된 병렬 KVM을 만듭니다.

모든 환경의 모든 프록시가 동일한 KVM에 액세스하도록 하려면 organization 범위에서 KVM을 만듭니다.

<ph type="x-smartling-placeholder">

암호화된 KVM 정보

암호화된 KVM은 Apigee에서 생성한 AES-128 암호화 키로 암호화됩니다. KVM을 암호화하는 데 사용되는 키는 KVM의 범위에 저장됩니다. 예를 들어 조직 내에서 환경 범위에서 만든 모든 암호화된 KVM은 동일한 환경 범위 키를 사용하여 생성됩니다.

Edge는 암호화된 값의 표시를 다음과 같은 방식으로 처리합니다. 암호화된 KVM을 만드는 방법은 KVM 관리 및 사용을 참고하세요.

Edge UI

암호화된 키-값 맵은 UI에서 별표 (*****)로 마스킹된 값을 표시합니다. 대상 예:

Management API

관리 API에서는 암호화된 값이 마스킹된 상태로 반환됩니다. 다음은 샘플 관리입니다 암호화된 KVM 호출의 API 응답:

{
  "encrypted": true,
  "entry": [
    {
      "name": "Key1",
      "value": "*****"
    },
    {
      "name": "Key2",
      "value": "*****"
    }
  ],
  "name": "secretMap"
}

Trace 및 디버그

키-값 맵 작업 정책을 사용하는 경우 암호화된 KVM 값을 검색하기 위해 값으로 사용됩니다. 암호화된 값을 가져오려면 "private." 값을 추가해야 합니다. 접두어를 변수 이름을 사용하여 KVM 키/값이 Trace 및 디버그 세션에 표시되지 않도록 합니다.

한도

다음과 같은 조직 코어 지속성 서비스 (CPS)가 사용 설정됨:

  • KVM 이름/식별자는 대소문자를 구분합니다.
  • 키 크기는 2KB로 제한됩니다.
  • 값의 크기는 10KB로 제한됩니다.

프라이빗 클라우드용 Apigee Edge의 경우 각 KVM이 15MB (키와 값을 합한 크기)를 초과하면 안 됩니다. 이 한도를 초과하면 Private Cloud용 Apigee Edge가 오류를 반환합니다. KVM의 크기를 확인하려면 다음을 사용하면 됩니다. nodetool cfstats 명령어를 사용합니다.

KVM이 클수록 성능이 저하될 수 있습니다. 따라서 데이터를 분할하여 모놀리식 KVM을 더 작은 단위로 분할하여 성능을 향상할 수 있습니다.

KVM 관리 및 사용

KVM은 다양한 방법으로 생성, 관리, 사용할 수 있습니다. 이 섹션에서는 다양한 암호화된 KVM과 암호화되지 않은 KVM을 모두 만들고 검색하는 옵션입니다.

KVM 만들기 및 업데이트

다음과 같은 방법으로 KVM을 만들고 업데이트할 수 있습니다.

  • 키-값 맵 작업 정책 (암호화 없음)

    API 프록시에서 런타임 KVM을 생성하고 업데이트하려면 다음을 사용합니다. 키-값 맵 작업 정책 (정책에서 상위 요소의 mapIdentifier 속성에 KVM의 이름을 지정합니다.)

    <InitialEntries> 요소를 사용하면 UI에 정책을 저장하거나 API 프록시를 배포하는 즉시 새 KVM에 기본 항목 집합을 만들고 채울 수 있습니다(오프라인으로 개발한 경우). 정책에서 값이 변경되면 기존 값을 덮어씁니다. 모든 새 키-값은 기존 키-값과 함께 기존 KVM에 추가됩니다.

    <Put> 요소는 KVM이 없는 경우 새 KVM을 만들며 하나 이상의 값을 가지는 키를 만듭니다. KVM이 이미 있는 경우 키-값이 추가됩니다(키가 이미 있는 경우 업데이트됨). KVM 정책에는 여러 <Put> 요소를 사용할 수 있습니다.

  • 관리 API

    관리 API는 런타임 중이 아닌 관리자로 KVM을 사용하기 위한 것입니다. 를 사용할 수 있습니다. 예를 들어 관리 API를 사용하는 내부 스크립트가 테스트 환경에서 KVM을 삭제하고 다시 만드는 API 또는 키 값을 재설정하려는 경우 KVM에 저장됩니다. (KVM의 런타임 조작의 경우 키-값 맵 작업 정책 를 입력합니다.

    키-값 지도 관리 API 을(를) 사용하면 암호화된 KVM 및 키/값을 모든 범위 (조직, 환경, apiproxy)

    관리 API로 암호화된 KVM을 만들려면 JSON 페이로드에 "encrypted" : "true"를 추가합니다. KVM을 만들 때만 암호화할 수 있습니다. 있습니다. 기존 KVM은 암호화할 수 없습니다.

  • 관리 UI

    Edge 관리 UI에서는 환경 범위 KVM: UI에 표시됩니다. 관리 UI는 API용 KVM 데이터를 수동으로 관리하는 좋은 방법입니다. 런타임 시 프록시를 사용할 수 있습니다 환경 키-값 맵 만들기 및 수정을 참조하세요. 를 참조하세요.

KVM 검색

암호화된 키-값과 암호화되지 않은 키-값을 검색할 때 한 가지 약간의 변형만 빼면 동일한 방식으로 매핑됨 키-값 맵 작업 정책을 사용하여 가져올 때

  • 정책: <Get> 키-값 맵 작업 정책 암호화 및 암호화되지 않은 KVM을 검색합니다. 한 가지 미묘한 차이점은 정책으로 암호화된 값 검색. 여기에 'private.'을(를) 추가해야 합니다. 가져온 값을 포함할 변수의 이름에 접두사를 추가합니다( 작업 가져오기 섹션 확인할 수 있습니다 이 프리픽스는 Trace 및 Debug의 값을 숨깁니다. 세션을 종료하는 방법을 설명합니다.
  • Management API: 관리 목적으로 환경 키-값 맵 만들기 및 수정 KVM과 키/값을 가져옵니다. 예를 들어 JSON 정의를 가져와 저장하여 KVM을 백업하고 관리 API를 사용합니다. 조심하세요. 그러나 암호화된 값은 API 응답에 ***** 로 표시됩니다.
  • 관리 UI: 관리에서 환경 범위 KVM을 볼 수 있습니다. API > 환경 구성 > 키-값 맵 (Classic Edge) 또는 관리 > 환경 > 키-값 맵 (New Edge).

KVM 예

KVM을 사용하여 URL에 값을 채우는 방법의 예는 다음을 참고하세요. https://community.apigee.com/questions/32727/templatize-target-url-with-kvm-by-environment.html.