En este documento se explica cómo confirmar una revisión de un esquema de temas de Pub/Sub.
Antes de empezar
- Consulta cómo funcionan los esquemas de Pub/Sub.
- Crea un esquema.
Roles y permisos necesarios
Para obtener los permisos que necesitas para confirmar una revisión de un esquema y gestionar esquemas, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de Pub/Sub (roles/pubsub.editor
) en tu proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para confirmar una revisión de un esquema y gestionar esquemas. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para confirmar una revisión de un esquema y gestionar esquemas, se necesitan los siguientes permisos:
-
Crea un esquema:
pubsub.schemas.create
-
Adjuntar un esquema a un tema:
pubsub.schemas.attach
-
Confirmar una revisión del esquema:
pubsub.schemas.commit
-
Eliminar un esquema o una revisión de un esquema:
pubsub.schemas.delete
-
Obtener un esquema o revisiones de un esquema:
pubsub.schemas.get
-
Ver esquemas:
pubsub.schemas.list
-
Lista de revisiones del esquema:
pubsub.schemas.listRevisions
-
Restaurar una versión anterior de un esquema:
pubsub.schemas.rollback
-
Validar un mensaje:
pubsub.schemas.validate
-
Obtener la política de gestión de identidades y accesos de un esquema:
pubsub.schemas.getIamPolicy
-
Configura la política de gestión de identidades y accesos de un esquema:
pubsub.schemas.setIamPolicy
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Puedes conceder roles y permisos a entidades principales, como usuarios, grupos, dominios o cuentas de servicio. Puedes crear un esquema en un proyecto y adjuntarlo a un tema ubicado en otro proyecto. Asegúrate de que tienes los permisos necesarios para cada proyecto.
Revisar un esquema
Puedes confirmar una revisión de un esquema mediante laGoogle Cloud consola, la CLI de gcloud, la API de Pub/Sub o las bibliotecas de cliente de Cloud.
A continuación, se indican algunas directrices para confirmar una revisión de un esquema:
Puedes revisar un esquema con las siguientes restricciones:
En los esquemas de Protocol Buffer, puedes añadir o quitar campos opcionales. No puedes añadir ni eliminar otros campos. Tampoco puedes editar ningún campo.
En el caso de los esquemas de Avro, consulta la documentación de Avro para obtener información sobre las reglas de resolución de esquemas. Una nueva revisión debe seguir las reglas como si fuera el esquema de lectura y el esquema de escritura.
Un esquema puede tener un máximo de 20 revisiones a la vez. Si superas el límite, elimina una revisión del esquema antes de crear otra.
Cada revisión tiene un ID único asociado. El ID de revisión es un UUID de ocho caracteres generado automáticamente.
Cuando actualizas el intervalo de revisión o la revisión de un esquema usado para validar temas, los cambios pueden tardar unos minutos en aplicarse.
Consola
Para crear una revisión de un esquema, sigue estos pasos:
En la Google Cloud consola, ve a la página Esquemas de Pub/Sub.
Haga clic en el ID de esquema de un esquema.
Se abrirá la página Detalles del esquema del esquema.
Haz clic en Crear revisión.
Se abrirá la página Crear revisión del esquema.
Haz los cambios necesarios.
Por ejemplo, en el esquema de ejemplo de Avro que has creado en Crear un esquema, puedes añadir un campo opcional adicional llamado
Price
de 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" } ] }
Haga clic en Validar definición para comprobar si la definición del esquema es correcta.
También puedes validar los mensajes del esquema.
Haz clic en Mensaje de prueba para probar un mensaje de ejemplo.
En la ventana Mensaje de prueba, selecciona un tipo de Codificación de mensaje.
En Cuerpo del mensaje, escribe un mensaje de prueba.
Por ejemplo, aquí tienes un mensaje de ejemplo para el esquema de prueba. En este ejemplo, selecciona Codificación de mensajes como
JSON
.{"ProductName":"GreenOnions", "SKU":34543, "Price":12, "InStock":true}
Haz clic en Test (Probar).
Haz clic en Confirmar para guardar el esquema.
gcloud
gcloud pubsub schemas commit SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition=SCHEMA_DEFINITION
Donde:
- SCHEMA_TYPE puede ser
avro
oprotocol-buffer
. - SCHEMA_DEFINITION es un
string
que contiene la definición del esquema, con el formato del tipo de esquema elegido.
También puede especificar la definición del esquema en un archivo:
gcloud pubsub schemas commit SCHEMA_ID \ --type=SCHEMA_TYPE \ --definition-file=SCHEMA_DEFINITION_FILE
Donde:
- SCHEMA_TYPE puede ser
avro
oprotocol-buffer
. - SCHEMA_DEFINITION_FILE es un
string
que contiene la ruta al archivo con la definición del esquema, con el formato del tipo de esquema elegido.
REST
Para confirmar una revisión de un 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 }
Donde:
- SCHEMA_TYPE puede ser
AVRO
oPROTOCOL_BUFFER
. - SCHEMA_DEFINITION es una cadena que contiene la definición del esquema, con el formato del tipo de esquema elegido.
- SCHEMA_NAME es el nombre de un esquema.
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 }
Donde:
- REVISION_ID es el ID generado por el servidor de 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 de cliente de Pub/Sub de Go (v2). Si sigues usando la biblioteca v1, consulta la guía de migración a la versión 2. Para ver una lista de ejemplos de código de la versión 1, consulta los ejemplos de código obsoletos.
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de Pub/Sub.
Avro
Proto
C++
Antes de probar este ejemplo, sigue las instrucciones de configuración de C++ que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de C++ de Pub/Sub.
Avro
Proto
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Java de Pub/Sub.
Avro
Proto
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración de Python que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para 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 este ejemplo, sigue las instrucciones de configuración de Node.js que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Pub/Sub.
Avro
Proto
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración de Node.js que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Node.js de Pub/Sub.
Avro
Proto
Después de confirmar una revisión del esquema, puedes ver los detalles de la nueva revisión en la página Esquemas.
Siguientes pasos
- Eliminar una revisión de un esquema
- Mostrar las revisiones de un esquema
- Restaurar una revisión de un esquema