En este documento, se muestra cómo confirmar una revisión de esquema para temas de Pub/Sub.
Antes de comenzar
- Comprende cómo funcionan los esquemas de Pub/Sub.
- Crea un esquema.
Roles y permisos requeridos
Para obtener los permisos que
necesitas para confirmar una revisión de esquema y administrar esquemas,
pídele a tu administrador que te otorgue el
rol de editor de Pub/Sub (roles/pubsub.editor) de IAM en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos requeridos para confirmar una revisión de esquema y administrar esquemas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para confirmar una revisión de esquema y administrar esquemas:
-
Crear esquema:
pubsub.schemas.create -
Adjuntar esquema al tema:
pubsub.schemas.attach -
Confirmar una revisión de esquema:
pubsub.schemas.commit -
Borrar un esquema o una revisión de esquema:
pubsub.schemas.delete -
Obtener un esquema o revisiones de esquema:
pubsub.schemas.get -
Enumerar esquemas:
pubsub.schemas.list -
Enumerar revisiones de esquema:
pubsub.schemas.listRevisions -
Revertir un esquema:
pubsub.schemas.rollback -
Validar un mensaje:
pubsub.schemas.validate -
Obtener la política de IAM para un esquema:
pubsub.schemas.getIamPolicy -
Configurar la política de IAM para un esquema:
pubsub.schemas.setIamPolicy
También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.
Puedes otorgar roles y permisos a entidades, como usuarios, grupos, dominios o cuentas de servicio. Puedes crear un esquema en un proyecto y adjuntarlo a un tema ubicado en un proyecto diferente. Asegúrate de tener los permisos necesarios para cada proyecto.
Revisa un esquema
Puedes confirmar una revisión de esquema con la Google Cloud consola, la gcloud CLI, la API de Pub/Sub, o las bibliotecas cliente de Cloud.
A continuación, se incluyen algunos lineamientos para confirmar una revisión de esquema:
Puedes revisar un esquema dentro de restricciones específicas:
Para los esquemas de búfer de protocolo, puedes agregar o quitar campos opcionales. No puedes agregar ni borrar otros campos. Tampoco puedes editar ningún campo existente.
Para los esquemas de Avro, consulta la documentación de Avro para obtener información sobre las reglas de resolución de esquemas. Una revisión nueva debe seguir las reglas como si fuera el esquema del lector y el esquema del escritor.
Un esquema puede tener un máximo de 20 revisiones a la vez. Si superas el límite, borra una revisión de esquema antes de crear otra.
Cada revisión tiene un ID de revisión único asociado. El ID de revisión es un UUID de ocho caracteres generado automáticamente.
Cuando actualizas el rango de revisión o la revisión de un esquema que se usa para la validación de temas, es posible que los cambios tarden unos minutos en aplicarse.
Console
Para crear una revisión de esquema, sigue estos pasos:
En la Google Cloud consola de, ve a la página Esquemas de Pub/Sub.
Haz clic en el ID de esquema de un esquema existente.
Se abrirá la página Detalles del esquema correspondiente.
Haz clic en Crear revisión.
Se abrirá la página Crear revisión de esquema.
Realiza los cambios necesarios.
Por ejemplo, para el esquema de muestra en Avro que creaste en Crea un esquema, puedes agregar un campo opcional adicional llamado
Pricede la siguiente manera:{ "type": "record", "name": "Avro", "fields": [ { "name": "ProductName", "type": "string", "default": "" }, { "name": "SKU", "type": "int", "default": 0 }, { "name": "InStock", "type": "boolean", "default": false }, { "name": "Price", "type": "double", "default": "0.0" } ] }Haz clic en Validar definición para verificar si la definición del esquema es correcta.
También puedes validar los mensajes del esquema.
Haz clic en Probar mensaje para probar un mensaje de muestra.
En la ventana Probar mensaje, selecciona un tipo de Codificación de mensajes.
En el Cuerpo del mensaje, ingresa un mensaje de prueba.
Por ejemplo, este es un mensaje de muestra para el esquema de prueba. En este ejemplo, selecciona la Codificación de mensajes como
JSON.{"ProductName":"GreenOnions", "SKU":34543, "Price":12, "InStock":true}Haz clic en Probar.
Haz clic en Confirmar para guardar el esquema.
gcloud
gcloud pubsub schemas commit SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Aquí:
- SCHEMA_TYPE es
avrooprotocol-buffer. - SCHEMA_DEFINITION es una
stringque contiene la definición de el esquema, con el formato del tipo de esquema seleccionado .
También puedes especificar la definición del esquema en el archivo:
gcloud pubsub schemas commit SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition-file=SCHEMA_DEFINITION_FILE
Aquí:
- SCHEMA_TYPE es
avrooprotocol-buffer. - SCHEMA_DEFINITION_FILE es una
stringque contiene la ruta de acceso al archivo con la definición del esquema, con el formato correspondiente al tipo de esquema seleccionado.
REST
Para confirmar una revisión de esquema, envía una solicitud POST como la siguiente:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID:commit Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
Especifica los siguientes campos en el cuerpo de la solicitud:
{ "definition": SCHEMA_DEFINITION "type": SCHEMA_TYPE "name": SCHEMA_NAME }
Aquí:
- SCHEMA_TYPE es
AVROoPROTOCOL_BUFFER. - SCHEMA_DEFINITION es una string que contiene la definición de el esquema, con el formato correspondiente al tipo de esquema seleccionado.
- SCHEMA_NAME es el nombre de un esquema existente.
El cuerpo de la respuesta debe contener una representación JSON de un recurso de esquema. Por ejemplo:
{
"name": SCHEMA_NAME,
"type": SCHEMA_TYPE,
"definition": SCHEMA_DEFINITION
"revisionId": REVISION_ID
"revisionCreateTime": REVISION_CREATE_TIME
}
Aquí:
- REVISION_ID es el ID generado por el servidor para la revisión.
- REVISION_CREATE_TIME es la marca de tiempo ISO 8601 en la que se creó la revisión.
Go
En el siguiente ejemplo, se usa la versión principal de la biblioteca cliente de Go Pub/Sub (v2). Si aún usas la biblioteca v1, consulta la guía de migración a la v2. Para ver una lista de ejemplos de código de la v1, consulta los ejemplos de código obsoletos.
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Avro
Proto
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
Avro
Proto
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Avro
Proto
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Python de Pub/Sub .
Avro
Proto
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Avro
Proto
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Avro
Proto
Después de confirmar una revisión de esquema, puedes ver los detalles de la revisión nueva en la página Esquemas.