Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Um esquema do Pub/Sub é um recurso opcional que pode ser usado para aplicar
o formato do campo data em uma mensagem do Pub/Sub.
Um esquema cria um contrato entre o editor e o assinante sobre o
formato das mensagens. O Pub/Sub aplica esse formato.
Os esquemas facilitam o consumo entre equipes nos fluxos de dados da
organização, criando uma autoridade central para tipos de mensagens e
permissões. Um esquema de mensagem do Pub/Sub define os nomes e
os tipos de dados dos campos em uma mensagem.
É possível criar um esquema e associá-lo a um tópico para
aplicá-lo a mensagens publicadas. Se uma mensagem específica não
estiver em conformidade com o esquema, ela não será publicada. Também é possível criar
outras revisões para um esquema.
Tipos de esquemas
É possível criar um esquema no Pub/Sub usando uma das
seguintes estruturas:
Confira a seguir algumas informações importantes sobre a criação e o gerenciamento de esquemas do Pub/Sub.
Para que um esquema funcione com o Pub/Sub, você precisa definir apenas
um tipo de nível superior. Instruções de importação que fazem referência a outros tipos
não são compatíveis.
É possível associar o mesmo esquema a vários tópicos.
É possível testar manualmente se uma mensagem é válida em um esquema.
Não inclua informações sensíveis, como informações de identificação pessoal (PII, na sigla em inglês) ou dados de segurança nos nomes dos campos do esquema.
Cotas e limites para esquemas
Os esquemas têm os seguintes limites:
O campo de definição do esquema não pode exceder 300 KB.
Um projeto pode ter no máximo 10.000 esquemas.
Um único esquema não pode ter mais de 20 revisões.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-19 UTC."],[],[],null,["A Pub/Sub schema is an optional feature that you can use to enforce\nthe format of the [data](/pubsub/docs/reference/rpc/google.pubsub.v1#google.pubsub.v1.PubsubMessage.FIELDS.bytes.google.pubsub.v1.PubsubMessage.data) field in a Pub/Sub message.\n\nA schema creates a contract between the publisher and subscriber about the\nformat of the messages. Pub/Sub enforces this format.\nSchemas facilitate inter-team consumption of data streams in your\norganization by creating a central authority for message types and\npermissions. A Pub/Sub message schema defines the names and\ndata types for the fields in a message.\n\nYou can create a schema and associate it with a topic to\nenforce the schema for published messages. If a specific message does\nnot conform to the schema, the message is not published. You can also create\nadditional revisions for a schema.\n\nTypes of schemas\n\nYou can create a schema in Pub/Sub by using one of the\nfollowing frameworks:\n\n- [Apache Avro](https://avro.apache.org/docs/++version++/specification/#schema-declaration)\n- [Protocol Buffer](https://protobuf.dev/)\n\nFor example, the following schema defines the inventory of a warehouse,\nfirst in the Avro format and then in the Protocol Buffer format.\n| **Note:** Avro version 1.11 is supported. For Protocol Buffers, proto2 and proto3 are supported.\n\nApache Avro format \n\n {\n \"type\" : \"record\",\n \"name\" : \"Avro\",\n \"fields\" : [\n {\n \"name\" : \"ProductName\",\n \"type\" : \"string\",\n \"default\": \"\"\n },\n {\n \"name\" : \"SKU\",\n \"type\" : \"int\",\n \"default\": 0\n },\n {\n \"name\" : \"InStock\",\n \"type\" : \"boolean\",\n \"default\": false\n }\n ]\n }\n\n| **Note:** Pub/Sub does not validate the default value of each field, follow the [Apache Avro specification](https://avro.apache.org/docs/1.11.1/specification/) for default value rules.\n\nProtocol Buffer format \n\n syntax = \"proto3\";\n message ProtocolBuffer {\n string product_name = 1;\n int32 SKU = 2;\n bool in_stock = 3;\n }\n\nImportant information about schemas\n\nThe following is some important information regarding creating and\nmanaging Pub/Sub schemas.\n\n- For a schema to work with Pub/Sub, you must define only\n one top-level [type](/pubsub/docs/schemas#types-schema). Import statements that reference other types\n are not supported.\n\n- You can associate the same schema to multiple topics.\n\n- You can manually test whether a message validates against a schema.\n\n- Don't include sensitive information such as personally identifiable\n information (PII) or security data in your schema field names.\n\nQuotas and limits for schemas\n\nSchemas have the following limits:\n\n- The schema definition field cannot exceed 300 KB in size.\n\n- A project can have a maximum of 10,000 schemas.\n\n- A single schema cannot have more than 20 revisions.\n\n For information about schemas and limits related to Pub/Sub,\n see [Pub/Sub quotas and limits](/pubsub/quotas).\n\nWhat's next\n\n- [Create a schema](/pubsub/docs/create-schemas)\n\n- [Associate a schema with a topic](/pubsub/docs/associate-schema-topic)\n\n- [Commit a schema revision](/pubsub/docs/commit-schema-revision)\n\n- [Publish messages to a topic with a schema](/pubsub/docs/publish-topics-schema)"]]