Apigee Edge의 알려진 문제

Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요.
정보

다음 섹션에서는 Apigee Edge의 알려진 문제를 설명합니다. 대부분의 경우 나열된 문제는 향후 출시 버전에서 해결될 예정입니다.

Miscellaneous Edge의 알려진 문제

다음 섹션에서는 Edge의 알려진 기타 문제를 설명합니다.

영역 알려진 문제
캐시 만료로 인해 cachehit 값이 잘못됨

LookupCache 정책 이후에 cachehit 흐름 변수가 사용되면 비동기 동작에 대해 디버그 지점이 전달되는 방식으로 인해 LookupPolicy가 콜백이 실행되기 전에 DebugInfo 객체를 채우므로 오류가 발생합니다.

해결 방법: 첫 번째 호출 직후에 프로세스 (두 번째 호출)를 다시 반복합니다.

InvalidateCache 정책 PurgeChildEntries을 true로 설정하면 올바르게 작동하지 않음

InvalidateCache 정책에서 PurgeChildEntries를 설정하면 KeyFragment 요소 값만 삭제되지만 전체 캐시는 삭제됩니다.

해결 방법: KeyValueMapOperations 정책을 사용하여 캐시 버전 관리를 반복하고 캐시 무효화 필요성을 우회합니다.

Edge UI의 알려진 문제

다음 섹션에서는 Edge UI의 알려진 문제를 설명합니다.

영역 알려진 문제
조직이 ID 영역에 매핑되면 탐색 메뉴에서 Edge SSO 영역 관리 페이지에 액세스할 수 없습니다. 조직을 ID 영역에 연결하면 더 이상 왼쪽 탐색 메뉴에서 Admin > SSO를 선택하여 Edge SSO 영역 관리 페이지에 액세스할 수 없습니다. 이 문제를 해결하려면 다음 URL을 사용하여 페이지로 바로 이동합니다.(https://apigee.com/sso).

통합 포털의 알려진 문제

다음 섹션에서는 통합 포털의 알려진 문제를 설명합니다.

영역 알려진 문제
SmartDocs
  • Apigee Edge는 사양 편집기를 사용하여 사양을 생성하고 포털에서 SmartDocs를 사용하여 API를 게시할 때 OpenAPI 사양 3.0을 지원합니다. 단, 일부 기능은 아직 지원되지 않습니다.

    예를 들어 다음의 OpenAPI 사양 3.0 기능이 아직 지원되지 않습니다.

    • 스키마 결합 및 확장을 위한 allOf 속성
    • 원격 참조

    OpenAPI 사양에서 지원되지 않는 기능을 참조하는 경우, 도구가 기능을 무시하지만 API 참조 문서는 계속 렌더링합니다. 다른 경우에는 지원되지 않는 기능이 API 참조 문서의 성공적인 렌더링을 방지하는 오류를 일으킵니다. 두 경우 모두 지원되지 않는 기능이 향후 출시 버전에서 지원될 때까지 사용되지 않도록 OpenAPI 사양을 수정해야 합니다.

    참고: 사양 편집기는 API 참조 문서를 렌더링할 때 SmartDocs보다 덜 제한적이므로 도구마다 결과가 다를 수 있습니다.

  • 포털에서 이 API 사용해 보기를 사용하는 경우 OpenAPI 사양에서 consumes에 설정된 값에 관계없이 Accept 헤더가 application/json으로 설정됩니다.
SAML ID 공급업체 커스텀 도메인에서는 SAML ID 공급업체를 사용한 단일 로그아웃 (SLO)이 지원되지 않습니다. SAML ID 공급업체로 커스텀 도메인을 사용 설정하려면 SAML 설정을 구성할 때 로그아웃 URL 필드를 비워 둡니다.
포털 관리자
  • 현재 여러 사용자의 동시 포털 업데이트(예: 페이지, 테마, CSS, 스크립트 수정)는 지원되지 않습니다.
  • 포털에서 API 참조 문서 페이지를 삭제하면 다시 생성할 수 없습니다. API 제품을 삭제 및 다시 추가하고 API 참조 문서를 다시 생성해야 합니다.
  • 콘텐츠 보안 정책을 구성할 때 변경사항이 완전히 적용되는 데 최대 15분이 걸릴 수 있습니다.
  • 포털 테마를 맞춤설정할 때 변경사항이 완전히 적용되는 데 최대 5분이 걸릴 수 있습니다.
포털 기능
  • 향후 출시 버전에서는 통합 포털에 검색이 통합될 예정입니다.

프라이빗 클라우드용 에지의 알려진 문제

다음 섹션에서는 프라이빗 클라우드용 에지의 알려진 문제를 설명합니다.

영역 알려진 문제
Apigee HTTP/2 취약점

최근 프라이빗 클라우드용 Apigee Edge를 비롯한 여러 HTTP/2 프로토콜 (CVE-2023-44487) 구현에서 서비스 거부 (DoS) 취약점이 발견되었습니다. 이 취약점으로 인해 Apigee API 관리 기능의 DoS가 발생할 수 있습니다. 자세한 내용은 Apigee 보안 게시판 GCP-2023-032를 참고하세요.

Private Cloud용 Edge 라우터관리 서버 구성요소는 인터넷에 노출되므로 취약할 수 있습니다. HTTP/2는 Private Cloud용 Edge의 다른 에지 관련 구성요소의 관리 포트에 사용 설정되어 있지만 이러한 구성요소는 인터넷에 노출되지 않습니다. Cassandra, 주키퍼 등 Edge 이외의 구성요소에서는 HTTP/2가 사용 설정되지 않습니다. Edge for Private Cloud 취약점을 해결하려면 다음 단계를 따르는 것이 좋습니다.

Edge Private Cloud 버전 4.51.00.11 이상을 사용하는 경우 다음 단계를 따르세요.

  1. 관리 서버를 업데이트합니다.

    1. 각 관리 서버 노드에서 /opt/apigee/customer/application/management-server.properties을 엽니다.
    2. 속성 파일에 다음 줄을 추가합니다.
      conf_webserver_http2.enabled=false
    3. 관리 서버 구성요소를 다시 시작합니다.
      apigee-service edge-management-server restart
  2. 메시지 프로세서를 업데이트합니다.

    1. 각 메시지 프로세서 노드에서 /opt/apigee/customer/application/message-processor.properties을 엽니다.
    2. 속성 파일에 다음 줄을 추가합니다.
      conf_webserver_http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-message-processor restart
  3. 라우터를 업데이트합니다.

    1. 각 라우터 노드에서 /opt/apigee/customer/application/router.properties을 엽니다.
    2. 속성 파일에 다음 줄을 추가합니다.
      conf_webserver_http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-router restart
  4. QPID 업데이트:

    1. 각 QPID 노드에서 /opt/apigee/customer/application/qpid-server.properties를 엽니다.
    2. 속성 파일에 다음 줄을 추가합니다.
      conf_webserver_http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-qpid-server restart
  5. Postgres 업데이트:

    1. 각 Postgres 노드에서 /opt/apigee/customer/application/postgres-server.properties을 엽니다.
    2. 속성 파일에 다음 줄을 추가합니다.
      conf_webserver_http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-postgres-server restart

4.51.00.11 이전 버전의 Private Cloud용 Edge를 사용하는 경우 다음 단계를 따르세요.

  1. 관리 서버를 업데이트합니다.

    1. 각 관리 서버 노드에서 /opt/apigee/customer/application/management-server.properties을 엽니다.
    2. 속성 파일에 다음 두 줄을 추가합니다.
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 관리 서버 구성요소를 다시 시작합니다.
      apigee-service edge-management-server restart
  2. 메시지 프로세서를 업데이트합니다.

    1. 각 메시지 프로세서 노드에서 /opt/apigee/customer/application/message-processor.properties을 엽니다.
    2. 속성 파일에 다음 두 줄을 추가합니다.
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-message-processor restart
  3. 라우터를 업데이트합니다.

    1. 각 라우터 노드에서 /opt/apigee/customer/application/router.properties을 엽니다.
    2. 속성 파일에 다음 두 줄을 추가합니다.
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-router restart
  4. QPID 업데이트:

    1. 각 QPID 노드에서 /opt/apigee/customer/application/qpid-server.properties를 엽니다.
    2. 속성 파일에 다음 두 줄을 추가합니다.
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-qpid-server restart
  5. Postgres 업데이트:

    1. 각 Postgres 노드에서 /opt/apigee/customer/application/postgres-server.properties을 엽니다.
    2. 속성 파일에 다음 두 줄을 추가합니다.
      conf_webserver_http2.enabled=false
      conf/webserver.properties+http2.enabled=false
    3. 메시지 프로세서 구성요소를 다시 시작합니다.
      apigee-service edge-postgres-server restart
버전 4.52로 업데이트할 때 Postgresql 업그레이드

Apigee-postgresql을 Private Cloud용 Edge 버전 4.50 또는 4.51에서 버전 4.52로 업그레이드하는 데 문제가 있습니다. 이 문제는 주로 테이블 수가 500개를 초과할 때 발생합니다.

아래 SQL 쿼리를 실행하여 Postgres에서 총 테이블 수를 확인할 수 있습니다.

select count(*) from information_schema.tables

해결 방법: Apigee Edge 4.50.00 또는 4.51.00을 4.52.00으로 업데이트할 때는 Apigee-postgresql을 업그레이드하기 전에 예비 단계를 수행해야 합니다.

RHEL 8.0: apigee-mirror

apigee-mirror는 Red Hat Enterprise Linux (RHEL) 8.0에서 작동하지 않습니다.

해결 방법: 이 문제를 해결하려면 더 낮은 버전의 RHEL 또는 Apigee에 지원되는 다른 운영체제를 실행하는 서버에 apigee-mirror를 설치하세요. 그러면 RHEL 8.0 서버에 Apigee를 설치했더라도 미러를 사용하여 패키지를 추가할 수 있습니다.

LDAP 정책

149245401: LDAP 리소스를 통해 구성된 JNDI의 LDAP 연결 풀 설정이 반영되지 않으며 JNDI 기본값이 매번 일회용 연결을 발생시킵니다. 따라서 일회용 연결이 매번 열리고 닫히면서 LDAP 서버에 대한 시간당 많은 수의 연결이 생성됩니다.

해결 방법:

LDAP 연결 풀 속성을 변경하려면 다음 단계를 수행하여 모든 LDAP 정책에 전체 변경사항을 설정합니다.

  1. 구성 속성 파일이 아직 없으면 새로 만듭니다.
    /opt/apigee/customer/application/message-processor.properties
  2. 다음을 파일에 추가합니다 (LDAP 리소스 구성 요구사항에 따라 Java 이름 지정 및 디렉터리 인터페이스 (JNDI) 속성 값 대체).
    bin_setenv_ext_jvm_opts="-Dcom.sun.jndi.ldap.connect.pool.maxsize=20
    -Dcom.sun.jndi.ldap.connect.pool.prefsize=2
    -Dcom.sun.jndi.ldap.connect.pool.initsize=2
    -Dcom.sun.jndi.ldap.connect.pool.timeout=120000
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl"
  3. /opt/apigee/customer/application/message-processor.properties 파일이 Apigee:apigee의 소유인지 확인하세요.
  4. 각 메시지 프로세서를 다시 시작합니다.

연결 풀 JNDI 속성이 적용되고 있는지 확인하려면 tcpdump를 실행하여 시간 경과에 따른 LDAP 연결 풀의 동작을 관찰하면 됩니다.

긴 요청 처리 지연 시간

139051927: 메시지 프로세서에서 발견된 높은 프록시 처리 지연 시간이 모든 API 프록시에 영향을 미칩니다. 증상으로는 일반적인 API 응답 시간보다 처리 시간이 200~300ms 지연되며 TPS가 낮을 때도 무작위로 발생할 수 있습니다. 이 문제는 메시지 프로세서가 연결하는 대상 서버가 50개를 넘으면 발생할 수 있습니다.

근본 원인: 메시지 프로세서는 대상 서버로 나가는 연결을 위해 대상 서버 URL을 HTTPClient 객체에 매핑하는 캐시를 유지합니다. 기본적으로 이 설정은 50으로 설정되며 대부분의 배포에서 너무 낮을 수 있습니다. 배포에 여러 org/env 조합이 있고 대상 서버의 수가 총 50개를 초과하는 경우 대상 서버 URL이 계속 캐시에서 제거되어 지연 시간이 발생합니다.

유효성 검사: 대상 서버 URL 제거로 인해 지연 시간 문제가 발생하는지 확인하려면 메시지 프로세서 system.logs에서 키워드 'onEvict' 또는 'Eviction'을 검색합니다. 로그에 대상 서버 URL이 있으면 캐시 크기가 너무 작기 때문에 HTTPClient 캐시에서 대상 서버 URL이 제거됩니다.

해결 방법: Private Cloud용 Edge 버전 19.01 및 19.06의 경우 HTTPClient 캐시 /opt/apigee/customer/application/message-processor.properties를 수정하고 구성할 수 있습니다.

conf/http.properties+HTTPClient.dynamic.cache.elements.size=500

그런 다음 메시지 프로세서를 다시 시작합니다. 모든 메시지 프로세서에 동일하게 변경합니다.

값 500은 예입니다. 최적의 설정 값은 메시지 프로세서가 연결할 대상 서버의 수보다 커야 합니다. 이 속성을 더 높게 설정해도 부작용은 없으며 메시지 프로세서 프록시 요청 처리 시간만 개선될 것입니다.

참고: 프라이빗 클라우드용 Edge 버전 50.00의 기본 설정은 500입니다.

키-값 맵을 위한 여러 항목

157933959: 조직 또는 환경 수준으로 범위가 지정된 동일한 키-값 맵 (KVM)에 대한 동시 삽입 및 업데이트로 인해 데이터가 일관되지 않고 업데이트가 손실됩니다.

참고: 이 제한은 프라이빗 클라우드용 에지에만 적용됩니다. 퍼블릭 클라우드 및 하이브리드용 Edge에는 이러한 제한사항이 없습니다.

Private Cloud용 Edge에서 해결 방법을 위해 apiproxy 범위에서 KVM을 만듭니다.