16.08.17 - 퍼블릭 클라우드용 Apigee Edge 출시 노트

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

2016년 8월 30일 화요일에 Apigee Edge for Public Cloud의 새 버전이 출시되었습니다.

새로운 기능 및 업데이트

다음은 이번 출시의 새로운 기능과 업데이트입니다.

Assign Message 및 Raise Fault의 JSON 페이로드

Assign Message 또는 Raise Fault 정책을 사용하여 JSON 페이로드를 설정할 때 사용자는 런타임에 JSON 메시지가 올바르게 형식이 지정되도록 하기 위해 메시지에 변수가 사용되지 않은 경우에도 백슬래시 '\'로 페이로드를 시작하거나 Payload 요소에 variablePrefix 및 variableSuffix를 지정하는 등의 해결 방법을 사용해야 하는 경우가 있었습니다.

이 개선사항을 통해 적절한 JSON 메시지 형식을 보장하기 위한 해결 방법이 필요하지 않으며, 잘못된 JSON을 만들지 않고 중괄호를 사용하여 변수를 지정할 수 있습니다. 예를 들어 다음은 JSON 메시지에 message.content 값을 삽입합니다.

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

해결 방법을 사용한 경우 코드는 그대로 작동합니다. 중괄호 대신 variablePrefix 및 variableSuffix를 사용하여 변수를 나타낼 수도 있습니다.

메시지 할당 정책오류 제기 정책 참조 문서의 <Set><Payload> 요소를 참고하세요. (APIRT-1160)

XML to JSON 정책 개선사항

XML to JSON 정책이 다음과 같은 기능으로 개선되었습니다. 다음과 같이 정책을 구성할 수 있습니다.

  • 변환 중에 일부 XML 요소를 배열로 처리하여 JSON 문서의 대괄호 '[ ]'에 값을 배치합니다.
  • 최종 JSON 문서에서 XML 문서 계층 구조의 수준을 삭제합니다.

자세한 내용은 XML to JSON 정책을 참고하세요. (APIRT-1144)

API 제품 리소스 경로의 여러 와일드 카드

API 제품에서 리소스 경로를 정의할 때 리소스 경로의 여러 위치에 와일드 카드를 포함할 수 있습니다. 예를 들어 /team/*/invoices/**/team 뒤에 오는 값과 invoices/ 뒤에 오는 리소스 경로를 사용하여 API 호출을 허용합니다. API 호출에서 허용되는 URI는 proxyBasePath/team/finance/invoices/company/a입니다.

이 출시 후 기존 API 제품 리소스 경로가 예상대로 작동하지 않으면 조직에서 다음 속성을 설정하여 이전 동작으로 되돌리세요. features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

JavaScript의 암호화 함수

다음 해시 객체(MD5, SHA-1, SHA256, SHA512)를 만들고 가져오고 업데이트하는 데 사용할 수 있는 새로운 고성능 JavaScript crypto 함수가 제공됩니다. crypto 객체를 사용하면 다양한 형식으로 날짜를 가져올 수도 있습니다. 자세한 내용은 JavaScript 객체 모델을 참고하세요. (APIRT-2886)

Java 콜아웃 JAR 버전 확인

Java JAR 리소스를 API 프록시에 업로드할 때 Java 리소스 버전이 지원되는 소프트웨어 및 지원되는 버전에 나열된 Edge 지원 Java 버전과 호환되지 않으면 HTTP 400 상태 코드가 반환됩니다(500 대신). (MGMT-3420)

API 프록시 리소스 검증

환경 또는 조직 범위에 저장된 API 프록시 리소스 파일 (예: JavaScript 또는 Java JAR)이 있는 경우 유효성 검사 프레임워크에서는 유효성 검사를 통과하기 위해 가져올 프록시 번들에 API 프록시 수준의 리소스를 포함할 필요가 없습니다. 이제 리소스 유효성 검사는 가져오기 시간이 아닌 배포 시간에 실행됩니다. (MGMT-1430)

개별 API 프록시의 시간 제한 구성

지정된 시간이 지나면 타임아웃되도록 API 프록시를 구성할 수 있습니다 (504 게이트웨이 타임아웃 상태). 기본 사용 사례는 실행하는 데 시간이 오래 걸리는 API 프록시가 있는 Private Cloud 고객을 위한 것입니다. 예를 들어 특정 프록시를 3분에 타임아웃해야 한다고 가정해 보겠습니다. API 프록시 구성에서 새 api.timeout 속성을 사용할 수 있습니다. 3분 예시를 사용하여 이 작업을 수행하는 방법은 다음과 같습니다.

  1. 먼저 3분 후 부하 분산기, 라우터, 메시지 프로세서가 타임아웃되도록 구성해야 합니다.
  2. 그런 다음 관련 프록시가 3분 안에 타임아웃되도록 구성합니다. 값을 밀리초 단위로 지정하세요. 예를 들면 다음과 같습니다.
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. 그러나 시스템 시간 제한을 늘리면 api.timeout 설정이 없는 모든 프록시가 새로운 상위 부하 분산기, 라우터, 메시지 프로세서 시간 제한을 사용하므로 성능 문제가 발생할 수 있습니다. 따라서 더 짧은 시간 제한을 사용하기 위해 더 이상 시간 제한이 필요 없는 다른 API 프록시를 구성합니다. 예를 들어 다음은 1분 후 API 프록시가 시간 초과되도록 설정합니다.
    <Property name="api.timeout">60000</Property>

Edge 시간 제한을 수정할 수 없는 클라우드 고객은 표준 Edge 메시지 프로세서 시간 제한인 57초보다 짧은 경우 API 프록시 시간 제한도 구성할 수 있습니다.

변수로 값을 채울 수 없습니다. 이 속성은 엔드포인트 속성 참조에 설명되어 있습니다. (APIRT-1778)

메시지 로깅 정책의 TLS/SSL

<KeyStore><TrustStore>메시지 로깅 정책SSLInfo 구성에서 설정할 수 있으므로 로깅 서비스와 단방향 및 양방향 TLS/SSL을 사용할 수 있습니다. 프록시 TargetEndpoint에서와 마찬가지로 메시지 로깅 정책에서 SSLInfo를 구성합니다. 하지만 메시지 로깅 TLS/SSL은 TCP 프로토콜만 지원합니다. (APIRT-1858)

수정된 버그

다음은 이번 출시 버전에서 수정된 버그입니다. 이 목록은 주로 자신의 지원 티켓에서 제기한 문제가 수정되었는지 확인하는 사용자를 위한 것입니다. 모든 사용자에게 자세한 정보를 제공하기 위한 목적은 아닙니다.

문제 ID 설명
SECENG-609 연결된 트러스트 저장소 삭제 중 또는 트러스트 저장소의 유효한 인증서가 삭제될 때 런타임 호출이 실패하지 않음
MGMT-3404 Node.js 로그 보기/검색 및 프록시 배포가 매우 느림
MGMT-3400 호출을 실행하는 사용자의 이름에 '+' 기호가 있으면 /userroles 관리 API 호출이 실패함
MGMT-3368 resources/node/resources 디렉터리가 포함된 API 프록시 번들을 가져올 때 java.lang.ArrayIndexOutOfBoundsException: 1
MGMT-3364 OAuthV2: redirect_uri 확인
MGMT-3319 항목 중 하나에 null 값이 있는 보관소의 항목을 나열하는 것은 조직 (CPS 및 비CPS)에서 작동하지 않음
MGMT-3226 조직/환경 수준에서 쿼리하면 API가 실패하는 모든 데이터를 가져오지 않아야 함
Release_160302에는 리소스의 누적 크기가 16MB를 초과하는 경우 조직 수준/환경 수준에서 리소스 목록이 실패하는 버그가 있었습니다. 이 수정사항으로 해결됩니다.
AXAPP-2429 response_status_code를 사용하는 Analytics API에서 데이터 액세스 오류가 반환됨
AXAPP-2386 애널리틱스 일일 이메일 보고서의 빈 보고서 콘텐츠 수정
AXAPP-2347 일일 분석 요약 이메일을 받지 못함
APIRT-3141 생성자가 비공개로 설정되어 있으므로 새 ExecutionResult()를 호출할 때 Java 콜아웃이 실패함
APIRT-3140 HEAD API 호출에서 ServiceCallout 정책이 작동하지 않음
APIRT-3131 외부 인증 제공업체와 함께 수익 창출을 사용할 때 API 프록시에 잘못된 createdBy가 표시됨
APIRT-3121 조직 리소스 파일 변경사항이 100% 적용되지 않음
APIRT-3117 MP가 CPU 사용률 100% 에 도달하여 트래픽 제공을 중지함
APIRT-3016 배포에서 라우터 '호출 시간 초과' 오류 발생
APIRT-2975 인증서 번들 업로드 실패
APIRT-2955 FHIR 호환 Content-Type 헤더 'application/json+fhir'의 JSON 응답 데이터에서 특정 속성을 마스크할 수 없음
APIRT-2946 표시가 false로 설정되어 있어도 OAuthV2-RefreshToken 정책에서 속성을 숨기지 않음
APIRT-2908 가상 호스트에서 TLS1.2 업데이트 후 내부 API 호출에 TLS1.2를 적용해야 함
APIRT-2901 캐시에서 반환된 gzip 압축 응답이 이중으로 압축됨
APIRT-2873 제품/개발자/프록시 삭제 후 VerifyAPIKey와 관련된 NullPointerException이 MP에 발생함
APIRT-2871 IOIntensive 정책이 트레이스에 두 번 표시됨
APIRT-2825 액세스 토큰 오류 응답의 문법 오류
APIRT-2750 특정 조직에서 트래픽 실패가 많음
APIRT-2685 알 수 없는 오류가 발생하여 트래픽이 흐를 수 없음
APIRT-2647 비프로덕션/개발에서 '기본 입력 스트림이 0바이트를 반환했습니다' 오류
APIRT-2630 캐시에서 값을 읽으려고 할 때 간헐적으로 발생하는 문제
APIRT-2620 일부 차단 단계의 별도 스레드 풀
APIRT-2610 응답 캐시 정책을 사용하는 경우 java.lang.ClassCastException 발생
APIRT-2608 응답 캐시 정책의 Last-Modified 헤더 파싱 오류
APIRT-2605 'organization' 및 'environment' 변수는 정책을 통해 덮어쓸 수 없어야 함
APIRT-2566 OAuthV2 정책에서 형식이 잘못된 WWW-Authenticate 헤더를 반환함
APIRT-2491 관리와 mps 간의 RPC 제한 시간으로 인해 TargetServer 업데이트가 실패함
APIRT-2386 허용된 OAuth 범위가 비어 있는 API 제품에 빈 문자열 범위가 생성됨
APIRT-2383 오류 발생 시 XSL 변환 정책이 데이터를 로깅하지 않는 것 같음
APIRT-2364 오류 시 OAuth 결함 흐름 변수가 업데이트되지 않음
APIRT-2216 서버 전송 이벤트 - 프로덕션에서 이벤트 스트림에 문제가 있음
APIRT-2079 생성된 세션의 제한 시간이 만료된 후 디버그 cURL 호출이 중지되지 않음
APIRT-1495 XML 위협 방지에서 fhir Content-Type을 포착하지 못함
APIRT-347 가져올 때 XSL 정책이 제대로 검증되지 않음 (문서화된 대로 출력 변수에 결과를 할당하지 않음)