스키마의 메시지 유효성 검사

이 문서에서는 Pub/Sub 주제의 스키마를 검증하는 방법을 설명합니다.

스키마 리소스를 만들기 전이나 후에 메시지가 특정 스키마를 준수하는지 검증할 수 있습니다. 이 단계에서는 스키마를 적용하기 전 스키마와 연결된 주제를 통해 전송하려는 메시지가 실제로 일치하는지 확인합니다.

시작하기 전에

필수 역할 및 권한

스키마 메시지를 검증하고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Pub/Sub 편집자(roles/pubsub.editor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 스키마 메시지를 검증하고 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.

필수 권한

스키마 메시지를 검증하고 관리하려면 다음 권한이 필요합니다.

  • 스키마 만들기: pubsub.schemas.create
  • 주제에 스키마 연결: pubsub.schemas.attach
  • 스키마 버전 커밋: pubsub.schemas.commit
  • 스키마 또는 스키마 버전 삭제: pubsub.schemas.delete
  • 스키마 또는 스키마 버전 가져오기: pubsub.schemas.get
  • 스키마 나열: pubsub.schemas.list
  • 스키마 버전 나열: pubsub.schemas.listRevisions
  • 스키마 롤백: pubsub.schemas.rollback
  • 메시지 유효성 검사: pubsub.schemas.validate
  • 스키마의 IAM 정책 가져오기: pubsub.schemas.getIamPolicy
  • 스키마의 IAM 정책 구성: pubsub.schemas.setIamPolicy

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

사용자, 그룹, 도메인, 서비스 계정과 같은 주 구성원에 역할 및 권한을 부여할 수 있습니다. 한 프로젝트에서 스키마를 만들고 이를 다른 프로젝트에 있는 주제에 연결할 수 있습니다. 각 프로젝트에 필요한 권한이 있는지 확인합니다.

스키마의 메시지 유효성 검사

콘솔

  1. Google Cloud 콘솔에서 Pub/Sub 스키마 페이지로 이동합니다.

    스키마로 이동

    스키마 목록이 표시됩니다.

  2. 기존 스키마의 스키마 ID를 클릭합니다.

    스키마의 스키마 세부정보 페이지가 열립니다.

  3. 버전 섹션에서 메시지를 검증하려는 버전을 클릭합니다.

  4. 세부정보 섹션에서 메시지 테스트를 클릭합니다.

  5. 메시지 테스트 창에서 메시지 인코딩 유형을 선택합니다.

  6. 메시지 본문에 테스트 메시지를 입력합니다.

  7. Test를 클릭합니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  2. 스키마에 대해 메시지를 검증하려면 gcloud pubsub schema validate-message 명령어를 사용합니다.

    gcloud pubsub schemas validate-message --message=MESSAGE \
        --message-encoding=MESSAGE_ENCODING \
        (--schema-name=SCHEMA_NAME | \
        --type=TYPE \
        (--definition=DEFINITION | \
        --definition-file=DEFINITION_FILE))
    

    다음을 바꿉니다.

    • MESSAGE: 스키마에 대해 검증할 메시지입니다.

    • MESSAGE_ENCODING: 메시지 인코딩입니다. binary 또는 json 값 중 하나를 지정합니다.

    • SCHEMA_NAME: 기존 스키마의 이름 또는 전체 경로입니다.

    • TYPE: 인라인 스키마 유형입니다. avro 또는 protocol-buffer 값 중 하나를 지정합니다.

    • DEFINITION: 인라인 스키마 정의입니다.

    • DEFINITION_FILE: 스키마 정의가 포함된 파일입니다.

다음 단계