Apigee의 알려진 문제

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

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

기타 Edge 알려진 문제

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

지역/요약 알려진 문제
캐시 만료로 인해 잘못된 cachehit 값이 발생함

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

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

InvalidateCache 정책 PurgeChildEntries를 true로 설정해도 제대로 작동하지 않음

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

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

SharedFlow 또는 API 프록시에 대한 동시 배포 요청은 관리 서버에서 여러 버전이 배포된 것으로 표시되는 일관되지 않은 상태가 발생할 수 있습니다.

예를 들어 다른 버전을 사용하여 CI/CD 배포 파이프라인의 동시 실행이 실행되는 경우 이런 문제가 발생할 수 있습니다. 이 문제를 방지하려면 현재 배포가 완료되기 전에 API 프록시 또는 SharedFlow를 배포하지 마세요.

해결 방법: 동시 API 프록시 또는 SharedFlow 배포를 피합니다.

Edge API 분석에 표시되는 API 호출 횟수에 중복 데이터가 포함될 수 있습니다.

Edge API 애널리틱스에는 API 호출에 대한 중복 데이터가 포함될 수 있습니다. 이 경우 Edge API 애널리틱스에서 API 호출에 표시되는 개수가 서드 파티 분석 도구에 표시되는 유사한 값보다 높습니다.

해결 방법: 애널리틱스 데이터를 내보내고 gateway_flow_id 필드를 사용하여 데이터 중복을 삭제합니다.

Edge UI의 알려진 문제

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

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

Known issues with the integrated portal

The following sections describe the known issues with the integrated portal.

Area Known issues
SmartDocs
  • Apigee Edge supports OpenAPI Specification 3.0 when you create specifications using the spec editor and publish APIs using SmartDocs on your portal, though a subset of features are not yet supported.

    For example, the following features from the OpenAPI Specification 3.0 are not yet supported:

    • allOf properties for combining and extending schemas
    • Remote references

    If an unsupported feature is referenced in your OpenAPI Specification, in some cases the tools will ignore the feature but still render the API reference documentation. In other cases, an unsupported feature will cause errors that prevent the successful rendering of the API reference documentation. In either case, you will need to modify your OpenAPI Specification to avoid use of the unsupported feature until it is supported in a future release.

    Note: Because the spec editor is less restrictive than SmartDocs when rendering API reference documentation, you may experience different results between the tools.

  • When using Try this API in the portal, the Accept header is set to application/json regardless of the value set for consumes in the OpenAPI Specification.
  • 138438484: Multiple servers are not supported.
SAML identity provider Single logout (SLO) with the SAML identity provider is not supported for custom domains. To enable a custom domain with a SAML identity provider, leave the Sign-out URL field blank when you configure SAML settings.
Portal admin
  • Simultaneous portal updates (such as page, theme, CSS, or script edits) by multiple users is not supported at this time.
  • If you delete an API reference documentation page from the portal, there is no way to recreate it; you'll need to delete and re-add the API product, and regenerate the API reference documentation.
  • When configuring the content security policy, it may take up to 15 minutes for changes to fully apply.
  • When customizing your portal theme, it may take up to 5 minutes for changes to fully apply.
Portal features
  • Search will be integrated into the integrated portal in a future release.

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

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

지역 알려진 문제
Private Cloud용 Edge 4.53.00 Java 콜아웃

FIPS를 지원하기 위해 기본 제공업체가 Bouncy Castle FIPS로 변경되었기 때문에 'BC'라는 이름을 사용하여 Bouncy Castle 암호화 제공업체를 로드하려는 고객 Java 콜아웃이 실패할 수 있습니다. 사용할 새 제공업체 이름은 'BCFIPS'입니다.

라우터 액세스 로그

라우터 노드에서 Nginx 1.26을 사용하면 일부 필드가 액세스 및 오류 로그에 로깅되지 않습니다. Nginx 1.20.1은 4.53.00과 호환되며 향후 Apigee 패치에서 이 문제가 해결될 때까지 사용할 수 있습니다.

Edge Private Cloud 4.52.01 Mint 업데이트

이 문제는 MINT를 사용 중이거나 프라이빗 클라우드용 Edge 설치에서 MINT를 사용 설정한 사용자에게만 영향을 미칩니다.

영향을 받는 구성요소: edge-message-processor

문제: 수익 창출을 사용 설정하고 4.52.01을 새로 설치하거나 이전 프라이빗 클라우드 버전에서 업그레이드하는 경우 메시지 프로세서에 문제가 발생합니다. 열려 있는 스레드 수가 점진적으로 증가하여 리소스가 고갈됩니다. edge-message-processor system.log에 다음과 같은 예외가 표시됩니다.

Error injecting constructor, java.lang.OutOfMemoryError: unable to create new native thread
Apigee HTTP/2 취약점

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

프라이빗 클라우드용 Edge 라우터관리 서버 구성요소는 인터넷에 노출되며 잠재적으로 취약할 수 있습니다. HTTP/2가 프라이빗 클라우드용 Edge의 다른 Edge 관련 구성요소의 관리 포트에서 사용 설정되더라도 이러한 구성요소는 인터넷에 노출되지 않습니다. Cassandra, Zookeeper 등과 같은 에지가 아닌 구성요소에서 HTTP/2는 사용 설정되지 않습니다. 프라이빗 클라우드용 Edge 취약점을 해결하려면 다음 단계를 따르는 것이 좋습니다.

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보다 이전 버전의 프라이빗 클라우드용 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에서 프라이빗 클라우드용 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을 업그레이드하기 전에 예비 단계를 실행해야 합니다.

LDAP 정책

149245401: LDAP 리소스를 통해 구성된 JNDI의 LDAP 연결 풀 설정이 반영되지 않고 JNDI 기본값으로 인해 매번 일회용 연결이 발생합니다. 그 결과, 일회용으로 사용할 때마다 연결이 열렸다 닫혔다 하면서 LDAP 서버에 시간당 많은 수의 연결이 생성됩니다.

해결 방법:

LDAP 연결 풀 속성을 변경하려면 다음 단계에 따라 모든 LDAP 정책에 전역 변경사항을 설정하세요.

  1. 구성 속성 파일이 아직 없는 경우 만듭니다.
    /opt/apigee/customer/application/message-processor.properties
  2. 파일에 다음을 추가합니다 (LDAP 리소스 구성 요구사항에 따라 Java Naming and Directory Interface (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~300밀리초 지연되는 것이 포함되며 TPS가 낮은 경우에도 무작위로 발생할 수 있습니다. 이는 메시지 프로세서가 연결하는 대상 서버가 50개를 초과하는 경우에 발생할 수 있습니다.

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

유효성 검사: 타겟 서버 URL 제거로 인해 지연 문제가 발생하는지 확인하려면 메시지 프로세서 system.logs에서 'onEvict' 또는 'Eviction' 키워드를 검색합니다. 로그에 이러한 URL이 있으면 캐시 크기가 너무 작아 타겟 서버 URL이 HTTPClient 캐시에서 제거되고 있음을 나타냅니다.

해결 방법: 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이 한 가지 예입니다. 설정에 적합한 최적의 값은 메시지 프로세서가 연결할 대상 서버 수보다 커야 합니다. 이 속성을 더 높게 설정해도 부작용이 없으며 유일한 영향은 메시지 프로세서 프록시 요청 처리 시간이 개선된다는 것입니다.

참고: Private Cloud용 Edge 버전 50.00의 기본 설정은 500입니다.

키-값 맵의 여러 항목

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

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

Edge for Private Cloud의 해결 방법으로 apiproxy 범위에서 KVM을 만듭니다.