Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요. info
2016년 8월 30일 화요일에 Apigee Edge for Public Cloud의 새 버전이 출시되었습니다.
새로운 기능 및 업데이트
다음은 이번 출시의 새로운 기능과 업데이트입니다.
Assign Message 및 Raise Fault의 JSON 페이로드
이 개선사항을 통해 적절한 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분 예시를 사용하여 이 작업을 수행하는 방법은 다음과 같습니다.
- 먼저 3분 후 부하 분산기, 라우터, 메시지 프로세서가 타임아웃되도록 구성해야 합니다.
- 그런 다음 관련 프록시가 3분 안에 타임아웃되도록 구성합니다. 값을 밀리초 단위로 지정하세요. 예를 들면 다음과 같습니다.
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - 그러나 시스템 시간 제한을 늘리면 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 정책이 제대로 검증되지 않음 (문서화된 대로 출력 변수에 결과를 할당하지 않음) |