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

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

2016년 8월 30일 화요일에 퍼블릭 클라우드용 Apigee Edge의 새 버전이 출시되었습니다.

새로운 기능 및 업데이트

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

메시지 할당 및 오류 발생의 JSON 페이로드

메시지 할당 또는 오류 발생 정책을 사용하여 JSON 페이로드를 설정할 때 사용자는 메시지에 변수가 없는 경우에도 페이로드를 백슬래시 '\'로 시작하거나 페이로드 요소에 변수 접두사 및 변수Suffix를 지정하는 등 런타임에 JSON 메시지의 형식을 올바르게 지정해야 하는 해결 방법을 사용해야 하는 경우가 있었습니다.

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

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

해결 방법을 사용했다면 코드는 계속 있는 그대로 작동합니다. 중괄호 대신 변수 접두사 및 varSuffix를 사용하여 변수를 표시할 수도 있습니다.

메시지 할당 정책오류 정책 참조 문서에서 <Set><페이로드> 요소를 확인하세요. (APIRT-1160)

XML에서 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 객체를 만들고, 가져오고, 업데이트하는 데 새로운 고성능 자바스크립트 crypto 함수 세트를 사용할 수 있습니다. crypto 객체를 사용하면 다양한 형식으로 날짜를 가져올 수도 있습니다. 자세한 내용은 JavaScript 객체 모델을 참조하세요. (APIRT-2886)

Java 콜아웃 JAR 버전 확인

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

API 프록시 리소스 검증

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

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

지정된 시간 (504 게이트웨이 제한 시간 상태)이 지나면 타임아웃되도록 API 프록시를 구성할 수 있습니다. 기본 사용 사례는 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

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

수정된 버그

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

문제 ID 설명
SECENG-609 연결된 트러스트 저장소를 삭제하는 중에 또는 트러스트 저장소의 유효한 인증서가 삭제될 때 런타임 호출이 실패하지 않음
MGMT-3404 Node.js 로그 보기/검색 및 프록시 배포가 매우 느림
MGMT-3400 호출하는 사용자의 이름에 '+' 기호가 있는 경우 /userroles 관리 API 호출이 실패함
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, resource/node/resources 디렉터리가 포함된 API 프록시 번들을 가져올 때
MGMT-3364 OAuthV2: redirect_uri 검사
MGMT-3319 조직 (CPS 및 비CPS)에 적합하지 않은 항목 중 하나에 null 값이 포함된 Vault 항목 나열
MGMT-3226 조직/환경 수준에서 쿼리해도 API 오류를 야기하는 모든 데이터를 가져올 수 없음
Release_160302에서 리소스의 누적 크기가 16MB를 초과하면 조직 수준/환경 수준에서 리소스 나열에 실패하는 버그가 발생했으며 이 수정사항으로 문제가 해결되었습니다.
AXAPP-2429 response_status_code를 사용하는 애널리틱스 API가 데이터 액세스 오류를 반환함
AXAPP-2386 애널리틱스 일일 이메일 보고서에서 빈 보고서 내용 수정
AXAPP-2347 일일 분석 요약 이메일을 받지 못함
APIRT-3141 생성자가 비공개로 설정되었기 때문에 새 ExecutionResult()를 호출할 때 Java 콜아웃이 실패함
APIRT-3140 HEAD API 호출에서 ServiceCall 정책이 작동하지 않습니다.
APIRT-3131 외부 인증 제공업체를 통해 수익 창출을 사용할 때 API 프록시에 표시되는 잘못된 createdBy
APIRT-3121 조직 리소스 파일 변경이 100% 효과적이지 않음
APIRT-3117 MP가 100% CPU 사용률에 도달하고 트래픽 처리를 중지함
APIRT-3016 배포의 라우터 '호출 시간 초과' 오류
APIRT-2975 인증서 번들 업로드 실패
APIRT-2955 FHIR-complaint Content-Type 헤더 'application/json+fhir'에 대해 JSON 응답 데이터의 특정 속성을 마스킹할 수 없음
APIRT-2946 표시가 false로 설정되어 있는데도 OAuthV2-RefreshToken 정책이 속성을 숨기지 않음
APIRT-2908 virtualhost의 TLS1.2 업데이트 후 내부 API 호출에 TLS1.2를 적용해야 합니다.
APIRT-2901 캐시에서 반환된 gzip으로 압축된 응답은 이중 압축됨
APIRT-2873 제품/developers/proxies를 삭제한 후 MP에서 VerifyAPIKey와 관련된 NullPointerException을 발생시킵니다.
APIRT-2871 Trace에 IOIntensive 정책이 두 번 표시됨
APIRT-2825 accesstoken 오류 응답에 문법적 오류가 있음
APIRT-2750 특정 조직에서 트래픽 실패가 높음
APIRT-2685 알 수 없는 오류가 발생하여 트래픽이 전달될 수 없음
APIRT-2647 nonprod/dev에서 '기본 입력 스트림이 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 정책이 제대로 검증되지 않습니다 (문서화된 대로 출력 변수에 결과를 할당하지 않음).