Apigee Edge에서 Apigee X로의 마이그레이션 방지 패턴

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

현재 Apigee Edge 고객은 새로운 기능이나 다양한 지역별 가용성을 활용하기 위해 설치를 Apigee X로 마이그레이션하도록 선택할 수 있습니다.

이 페이지에서는 Apigee X로 마이그레이션하기 전에 해결해야 하는 구성의 피해야 할 패턴 및 마이그레이션하기 전에 알아야 하는 기타 동작 변경사항을 설명합니다.

더 광범위한 Apigee Edge 피해야 할 패턴 목록에는 어떤 경우에든 피해야 할 사용 방법이 설명되어 있습니다. 이 페이지에서는 마이그레이션을 차단하는 구체적인 사용 사례를 설명합니다. Apigee X로 마이그레이션할 때 발생하는 문제를 방지하려면 지금 문제를 해결하세요.

API 제품이 없는 앱

요약 클라이언트 측 변경이 필요한가요? 해결 방법

API 제품이 없는 앱이 있습니다.

Apigee Edge와 Apigee X의 차이점:

Apigee Edge Apigee X
API 제품에 연결되지 않은 앱과 사용자 인증 정보를 구성할 수 있습니다. 이 앱은 실질적으로 모든 API 제품에 액세스할 수 있습니다. 각 앱은 하나 이상의 API 제품에 액세스하도록 구성되어야 합니다. 모든 API 제품에 대한 액세스를 암시적으로 제공할 수는 없습니다. 모든 API 제품에 액세스할 수 있도록 앱을 구성할 수 있지만, 이렇게 해야 합니다.
번호

해결 방법: API 제품이 없는 앱

모든 앱 사용자 인증 정보를 하나 이상의 API 제품과 연결합니다. 방법을 자세히 알아보려면 앱 등록 및 API 키 관리를 참고하세요.

쉬운 방법은 각 앱에 모든 API 제품에 대한 액세스 권한을 할당하는 것입니다. 이는 Apigee Edge에서 가능한 작업과 동일합니다. '최소 권한' 접근 방식을 취하려면 각 앱 사용자 인증 정보에 액세스해야 하는 API 제품의 최소 목록을 결정해야 합니다. 클라이언트 ID를 기준으로 Apigee Edge 애널리틱스 보고서를 사용하여 이를 분석할 수 있습니다.

만료 시간이 없는 캐시

요약 클라이언트 측 변경이 필요한가요? 해결 방법

캐시에 만료 시간이 없습니다.

Apigee Edge와 Apigee X의 차이점:

Apigee Edge Apigee X
캐시 리소스 설명자의 생성, 업데이트, 삭제를 지원합니다. 캐시 리소스 설명자의 생성, 업데이트, 삭제를 지원하지 않습니다.
No

해결 방법: 캐시에 만료 시간이 없음

모든 캐시에 만료 시간을 설정합니다.

무기한 경로의 JSONPath 필터 표현식

요약 클라이언트 측 변경이 필요한가요? 해결 방법

비확정적 경로의 경우 필터 표현식의 결과를 쿼리하는 것은 JSONPath 사양에 포함되지 않습니다. https://goessner.net/articles/JsonPath/를 참조하세요.

Apigee Edge와 Apigee X의 차이점:

이 예시 구조를 탐색할 때

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$..books[?(@.name == 'A')][0] 표현식을 사용하면

Apigee Edge Apigee X
출력 ‘{"name": "A"}’ 출력 []

$..books[?(@.name == 'A')][0].name 표현식을 사용하면

Apigee Edge Apigee X
출력 "A" 출력 []
지원됨

해결 방법: 무기한 경로의 JSONPath 필터 표현식

영향을 받는 쿼리를 찾아 바꿉니다.

존재하지 않는 색인의 JSONPath 표현식

요약 클라이언트 측 변경이 필요한가요? 해결 방법

색인이 없는 JSONPath 표현식은 Apigee X와 Apigee Edge에서 서로 다르게 동작합니다. 경로를 찾을 수 없으면 Apigee X가 PathNotFoundException 오류를 반환합니다.

Apigee Edge와 Apigee X의 차이점:

이 예시 구조를 탐색할 때

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$.books[3] 표현식을 사용하면

Apigee Edge Apigee X
출력 null PathNotFoundException 오류 출력
지원됨

해결 방법: 존재하지 않는 색인에 대한 JSONPath 표현식

영향을 받는 쿼리를 찾아 바꿉니다.

배열 색인이 있는 JSONPath 표현식이 배열 객체를 반환하지 않음

요약 클라이언트 측 변경이 필요한가요? 해결 방법

배열 색인 또는 슬라이스가 있는 JSONPath 표현식은 Apigee X에서 배열 객체를 반환합니다.

Apigee Edge와 Apigee X의 차이점:

이 예시 구조를 탐색할 때

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$.books 표현식을 사용하면

Apigee Edge Apigee X
출력 {“name”:”A”, “name”: “B”} 출력 [{“name”:”A”, “name”: “B”}]

$.books[-1] 표현식을 사용하면

Apigee Edge Apigee X
출력 {“name”: “B”} 출력 [{“name”: “B”}]

$.books[-2:] 표현식을 사용하면

Apigee Edge Apigee X
출력 {“name”:”A”, “name”: “B”} 출력 [{“name”:”A”, “name”: “B”}]
지원됨

해결 방법: 배열 색인이 있는 JSONPath 표현식이 배열 객체를 반환하지 않음

업그레이드 후 다른 결과를 반환할 수 있는 표현식을 찾아 바꿉니다.

키 저장소 이름 제한사항

요약 클라이언트 측 변경이 필요한가요? 해결 방법

Apigee X 키 저장소 이름에는 문자, 숫자, 하이픈만 포함할 수 있습니다. Edge 키 저장소 이름에는 이러한 제한이 적용되지 않습니다.

No

해결 방법: 키 저장소 이름 제한

키 저장소 이름을 확인하고 필요한 경우 이름을 업데이트하여 지원되지 않는 문자를 삭제합니다.

API 프록시에 배포된 여러 기본 경로

요약 클라이언트 측 변경이 필요한가요? 해결 방법

API 프록시의 여러 버전이 한 환경에 배포되며 버전마다 기본 경로가 달라집니다.

Apigee Edge와 Apigee X의 차이점:

Apigee Edge Apigee X
각 버전이 서로 다른 기본 경로를 가질 수 있는 API 프록시의 여러 버전의 배포를 지원합니다. 프록시의 기본 경로가 다르더라도 API 프록시의 여러 버전의 배포를 지원하지 않습니다.
No

해결 방법: API 프록시에 배포된 여러 기본 경로

기본 경로에 관계없이 번들의 한 버전만 환경에 배포되도록 모든 번들을 업데이트합니다.

규정을 준수하지 않는 HTTP 메시지

요약 클라이언트 측 변경이 필요한가요? 해결 방법

클라이언트 또는 API 프록시가 HTTP 표준을 준수하지 않는 메시지 (요청 또는 응답)를 전송합니다. 예를 들어 잘못된 헤더 이름, 일부 제한된 헤더의 중복 등이 있습니다.

API 실행에 다음 오류 중 하나 이상이 포함된 경우 Apigee X로 마이그레이션할 수 없습니다.

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
예, 그럴 수 있습니다.

해결 방법: 규정을 준수하지 않는 HTTP 메시지

Apigee X로 마이그레이션하기 전에 HTTP 프로토콜의 오류를 수정해야 합니다. 클라이언트 애플리케이션에서 오류가 발생한 경우 클라이언트 앱 개발자에게 문제 해결을 요청해야 합니다.

잘못된 OAuth 2.0 토큰 만료 시간

요약 클라이언트 측 변경이 필요한가요? 해결 방법

OAuth 2.0 토큰 만료 한도가 규정된 범위를 벗어났습니다.

Apigee Edge와 Apigee X의 차이점:

Apigee Edge Apigee X
OAuth 2.0 토큰 만료 시간에 대한 제약조건은 현재 적용되지 않지만 앞으로 적용될 예정입니다. 한도 페이지의 OAuth 섹션 가이드라인을 참조하세요. OAuth 2.0의 액세스 토큰과 갱신 토큰 만료 시간을 설정해야 합니다. 지원되는 범위는 다음과 같습니다.
  • 180초 <= OAuth 2.0 액세스 토큰 만료 시간 <= 30일
  • 1일 <= OAuth 2.0 토큰 갱신 만료 시간 <= 2년
No

해결 방법: OAuth 2.0 토큰 만료 시간이 잘못됨

OAuthV2 정책을 사용하고 <ExpiresIn><RefreshTokenExpiresIn>에 만료 시간을 지정합니다.

제품 한도 초과

요약 클라이언트 측 변경이 필요한가요? 해결 방법

Apigee Edge 구성이 정의된 제품 한도를 준수하지 않습니다. 문서화되었지만 Apigee Edge에 적용되지 않은 일부 제품 한도는 Apigee X에 적용됩니다.

No

해결 방법: 제품 한도 초과

Apigee X로 마이그레이션하기 전에 제품 한도를 초과하는 사용량을 수정하세요.

엔드포인트 및 경로 타겟 연결 지정자가 모두 포함된 Service콜아웃 정책

요약 클라이언트 측 변경이 필요한가요? 해결 방법

ServiceCall 정책에서 <LocalTargetConnection> 요소에는 <APIProxy><ProxyEndpoint> 요소 또는 <Path> 요소 중 하나만 포함되어야 합니다. 자세한 내용은 <LocalTargetConnection> 요소를 참고하세요.

Apigee Edge는 이 요구사항을 문서화하지만 적용하지는 않습니다. Apigee X는 두 구성에서 모두 <LocalTargetConnection>이 발생하면 처리를 중지합니다.

No

해결 방법: 엔드포인트 및 경로 대상 연결 지정자가 모두 포함된 Service콜아웃 정책

ServiceCall 정책 구성을 확인하고 규정을 준수하지 않는 <LocalTargetConnection> 구성을 삭제합니다.

대상 서버 이름 제한사항

요약 클라이언트 측 변경이 필요한가요? 해결 방법

Apigee X 대상 서버 이름에는 문자, 숫자, 하이픈, 마침표만 사용할 수 있습니다. 에지 대상 서버 이름에는 이러한 제한이 적용되지 않습니다.

No

해결 방법: 대상 서버 이름 제한

대상 서버 이름을 확인하고 필요한 경우 이름을 업데이트하여 지원되지 않는 문자를 삭제하세요.

가상 호스트의 무료 체험판 인증서

요약 클라이언트 측 변경이 필요한가요? 해결 방법

하나 이상의 가상 호스트가 Apigee에서 제공한 '무료 체험판' 인증서를 사용합니다. 이렇게 하면 가상 호스트가 ORG-ENV.apigee.net와 같은 도메인의 요청에 응답합니다.

Apigee Edge와 Apigee X의 차이점:

Apigee Edge Apigee X
ORG-ENV.apigee.net 형식의 도메인 이름을 지원하도록 'default' vhost를 자동으로 구성합니다. 이러한 도메인에서 TLS를 허용하는 '무료 체험판 인증서'라는 와일드 카드 인증서가 있습니다. ORG-ENV.apigee.net 형식의 기존 Apigee 도메인은 Apigee X에서 사용할 수 없습니다. 자체 도메인 이름을 구성하고 인증서를 적절하게 프로비저닝해야 합니다.
지원됨

해결 방법: 가상 호스트의 체험판 인증서

자체 도메인을 구성하고 인증서를 적절하게 프로비저닝해야 합니다.

ORG-ENV.apigee.net 형식의 기존 도메인 이름을 사용하는 모든 클라이언트 애플리케이션은 새 도메인을 호출하도록 수정해야 합니다.

확인되지 않은 DNS

요약 클라이언트 측 변경이 필요한가요? 해결 방법

대상 엔드포인트에 확인되지 않은 도메인 이름이 있습니다.

Apigee Edge와 Apigee X의 차이점:

Apigee Edge Apigee X
DNS 변환에 실패하면 Apigee가 .apigee.com을 도메인 이름에 추가하고 DNS가 4xx 응답 코드로 확인합니다. DNS 변환에 실패하면 Apigee가 요청을 실행하지 않고 5xx 응답 코드를 반환합니다.
No

해결: 해결되지 않은 DNS

대상 엔드포인트를 유효한 도메인 이름으로 업데이트합니다.