6.3. 서비스 레지스트리 새 기능
Service Registry 2.4에는 다음과 같은 새로운 기능이 포함되어 있습니다.
서비스 레지스트리 핵심 새로운 기능
- 아티팩트 참조 개선 사항
- 아티팩트 참조 무결성 규칙: 새 아티팩트별 규칙과 글로벌 규칙을 적용하여 아티팩트를 생성하거나 업데이트할 때 아티팩트 참조의 무결성을 적용할 수 있습니다. 모든 아티팩트 유형의 경우 규칙은 중복 아티팩트 참조를 감지하고 존재하지 않는 아티팩트에 대한 참조를 방지합니다. 아티팩트 유형(Apache Avro, Google Protobuf, OpenAPI 및 AsyncAPI)의 하위 집합의 경우 규칙은 모든 아티팩트 참조가 매핑되도록 합니다.
- Maven 플러그인의 자동 아티팩트 참조 감지: 아티팩트 유형(Apache Avro, Google Protobuf 및 JSON 스키마)의 하위 집합의 경우 Maven 플러그인은 아티팩트를 생성하거나 업데이트할 때 지정된 아티팩트에 대한 모든 아티팩트 참조를 자동으로 식별하고 구성할 수 있습니다.
- 웹 콘솔의 아티팩트 참조 시각화: 아티팩트 버전에 대한 인바운드 및 아웃바운드 참조를 모두 새 참조 탭에서 볼 수 있습니다. REST API는 이제 인바운드 및 아웃바운드 참조 둘 다 검색을 지원합니다. 이전에는 REST API에서 아웃바운드 참조만 검색했으며 웹 콘솔에 참조가 표시되지 않았습니다.
- 아티팩트 참조는 이제 콘텐츠로 처리됩니다. 이제 이 릴리스에서는 콘텐츠 해시 및 ID를 계산하고 아티팩트 버전의 호환성을 확인할 때 아티팩트 참조를 고려합니다. 다른 참조로 동일한 스키마 콘텐츠를 업로드하는 경우 새 아티팩트 버전을 생성합니다.
- 클라이언트 SDK 생성 (OpenAPI)
- 이번 릴리스에서는 사용자가 OpenAPI 아티팩트에서 클라이언트 SDK를 생성할 수 있는 새로운 웹 콘솔 기능이 추가되었습니다. 이 기능은 Microsoft의 Kiota를 사용하여 SDK를 생성합니다. 이 기능은 브라우저에서만 실행되며 API를 사용하여 자동화할 수 없습니다. 자세한 내용은 https://github.com/microsoft/kiota 을 참조하십시오.
- 아티팩트 버전 삭제
- 이 릴리스에서는 REST API를 사용하여 아티팩트 버전을 삭제할 수 있도록 새 REST API 작업과 새 Delete 아티팩트 버전 설정이 웹 콘솔에 추가되었습니다. 이전에는 아티팩트 버전을 변경할 수 없었습니다. 더 이상 사용되지 않거나 비활성화할 수는 있었지만 삭제할 수는 없었습니다. 그러나 의미 체계적 의미에도 불구하고 아티팩트 버전을 삭제해야 하는 경우가 있습니다. 예를 들어 규정 또는 정책상의 이유로 아티팩트 버전을 삭제해야 할 수 있습니다.
- 코어 레지스트리 REST API 개선 사항
- 버전 주석 API: 이제 REST API를 사용하여 아티팩트 버전에 주석을 추가할 수 있습니다. 웹 콘솔에서는 댓글 관리는 아직 사용할 수 없습니다.
-
내보내기 API는 Accept 헤더에서 application/json을 지원합니다. 이제
/admin/exportAPI 엔드포인트에 대한 호출에서Accept헤더의 값으로application/json을 보낼 수 있습니다. 이전에는애플리케이션/json형식의 응답을 반환하는 유일한 방법은forBrowser쿼리 매개변수를 사용하는 것입니다. 이제 query 매개변수 또는Accept헤더를 사용할 수 있습니다. - 그룹 관리: 아티팩트 생성의 일부로 암시적으로 암시적으로 REST API를 사용하여 선택적으로 아티팩트 그룹을 직접 관리할 수 있습니다.
- Conluent Compatibility REST API 개선 사항
- Confluent Compatibility API에 대한 업데이트된 지원: Confluent Schema Registry API 버전 7에 대한 지원이 추가되었습니다. 서비스 레지스트리는 이제 다른 엔드포인트에서 v6 및 v7을 모두 지원합니다.
-
사용자 지정 가능한 최대 주체 수: 이제
registry.ccompat.max-subjects동적 구성 속성을 사용하여ccompatAPI에서 반환하는 최대 주체 수를 사용자 지정할 수 있습니다.
- 기타 변경 사항
-
콘텐츠 해시를 사용하여 serializer/deserializer 아티팩트 확인:
SerDe클래스는 스키마의 콘텐츠 해시를 사용하여 아티팩트 좌표를 확인할 수 있습니다. - Avro를 축소하는 Maven 플러그인 옵션: Maven 플러그인을 사용하여 Avro 스키마를 등록할 때 등록 전에 콘텐츠를 축소할 수 있습니다.
-
콘텐츠 해시를 사용하여 serializer/deserializer 아티팩트 확인:
- community-only: 사용자 정의 아티팩트 유형
사용자는 잠재적으로 자체 사용자 지정 아티팩트 유형을 사용하여 서비스 레지스트리를 확장하고 기존 유형에 대한 지원을 제거할 수 있습니다. 이 기능은 서비스 레지스트리의 커뮤니티 버전에서만 사용할 수 있으며 지원되지 않습니다.
참고이 기능을 제공하기 위해 REST API의
ArtifactType이enum에서 간단한문자열로변경되었습니다. 사용자 지정 통합을 위해 REST API 클라이언트를 사용하는 경우 최신 클라이언트로 업그레이드한 후 코드를 편집해야 할 수 있습니다.
Service Registry Operator의 새로운 기능
- HTTPS에 대한 Operator 지원
-
OpenShift 클러스터 내에서 HTTPS 연결 구성 지원이 추가되었습니다. 각각
tls.crt및tls.key라는 인증서와 개인 키가 포함된 보안을 생성하고ApicurioRegistryCRD(사용자 정의 리소스 정의) 파일에서spec.configuration.security.https.secretName필드를 설정하여 보안을 참조할 수 있습니다. 그러면ServiceRegistry Operator가 서비스 레지스트리 서비스 리소스에 HTTPS 포트를 구성할 수 있습니다. HTTPS가 활성화된 경우spec.security.https.disableHttp를true로 설정하여 HTTP 연결을 비활성화할 수 있습니다. - 수동으로 관리되는 OpenShift 리소스 지원
이제 특정 리소스 유형을 비활성화하여 Service Registry Operator가 해당 리소스를 생성하거나 관리하지 않도록 수동으로 구성할 수 있습니다. 수동 구성을 사용하면 현재 Service Registry Operator에서 지원하지 않는 기능을 유연하게 사용할 수 있습니다. 리소스 유형을 비활성화하면 기존 인스턴스가 삭제됩니다. 리소스 유형을 활성화하면 Service Registry Operator에서 app 레이블(예:
app=example-apicurioregistry)을 사용하여 리소스를 찾고 관리를 시작합니다. 그렇지 않으면 Service Registry Operator가 새 인스턴스를 생성합니다. 이러한 방식으로 다음 리소스 유형을 비활성화할 수 있습니다.-
Ingress -
NetworkPolicy -
PodDisruptionBudget
-
- 로그 수준 구성 개선
-
ApicurioRegistryCRD 파일에서spec.configuration.registryLogLevel필드를 사용하여 Service Registry 및 Service Registry Operator의 로그 수준을 더 쉽게 설정할 수 있습니다. 이 새 필드는 Apicurio 이외의 구성 요소 및 라이브러리에서 작동하는spec.configuration.logLevel필드와 달리 Apicurio 애플리케이션 구성 요소(비Apicurio 구성 요소 및 라이브러리 제외)의 로그 수준을 설정합니다. Operator배포리소스에서LOG_LEVEL환경 변수를 설정하여 Service Registry Operator의 로그 수준을 설정할 수도 있습니다. 유효한LOG_LEVEL값은debug,info,warn,error입니다. - CORS 허용 출처
서버는 CORS(Cross-Origin Resource Sharing) 메커니즘을 사용하여 요청 출처와 응답을 공유할 수 있는지 여부를 제어할 수 있습니다. Service Registry Operator는
ApicurioRegistryCRD 파일의spec.deployment.host필드 값을 기반으로CORS_ALLOWED_ORIGINS환경 변수를 설정합니다. 이 환경 변수는 Service Registry에서 보낸Access-Control-Allow-Origin헤더를 제어합니다.사용자 정의
Ingress(예: HTTPS를 설정하기 위해)spec.deployment.managedResources.disable필드를Ingresstrue로 설정하고spec.deployment.host필드를 적절한 값으로 설정하여 Operator 관리 Ingress를 비활성화할 수 있습니다. 완전히 사용자 지정된 CORS 정책을 구성하려면spec.deployment.host필드를 비워 두고 변경 사항을 적용한 다음spec.deployment.env필드를 사용하여CORS_ALLOWED_ORIGINS환경 변수를 수동으로 설정할 수 있습니다.- Pod 템플릿을 사용하여 서비스 레지스트리 배포 구성
ApicurioRegistryCRD 파일에spec.deployment.podTemplateSpecPreview필드가 기술 프리뷰 기능으로 포함됩니다.spec.deployment.podTemplateSpecPreview필드에는 OpenShiftDeployment리소스의spec.template필드(PodTemplateSpec구조)와 동일한 구조가 있습니다. 일부 제한 사항이 있는 경우 Service Registry Operator는 이 필드의 데이터를 Service RegistryDeployment리소스의 해당 필드로 전달합니다. 이 기능은 Service Registry Operator가 각 사용 사례를 기본적으로 지원할 필요 없이 구성 유연성을 향상시킵니다.중요기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Service Registry 사용자 문서 및 예
문서 라이브러리가 버전 2.4에서 사용할 수 있는 새로운 기능으로 업데이트되었습니다.
오픈 소스 데모 애플리케이션도 업데이트되었습니다.