As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conceitos básicos do registro de esquemas
As seções a seguir fornecem uma visão geral e orientações sobre como configurar e usar o registro de esquemas. Para obter informações sobre conceitos e componentes do registro de esquemas, consulte Registro de esquemas do AWS Glue.
Tópicos
- Instalar as bibliotecas SerDe
- Usar a AWS CLI para APIs do registro de esquemas do AWS Glue
- Criar um registro
- Lidar com um registro específico (JAVA POJO) para JSON
- Criar um esquema
- Atualizar um esquema ou registro
- Excluir um esquema ou registro
- Exemplos do IAM para serializadores
- Exemplos do IAM para desserializadores
- Conectividade privada usando AWS PrivateLink
- Acessar métricas do Amazon CloudWatch
- Exemplo do modelo do AWS CloudFormation para o registro de esquemas
Instalar as bibliotecas SerDe
nota
Pré-requisitos: antes de concluir as etapas a seguir, é necessário ter um cluster do Amazon Managed Streaming for Apache Kafka (Amazon MSK) ou do Apache Kafka em execução. Seus produtores e consumidores precisam estar em execução em Java 8 ou superior.
As bibliotecas SerDe fornecem um framework para serialização e desserialização de dados.
Você instalará o serializador de código aberto para suas aplicações que produzem dados (coletivamente os “serializadores”). O serializador manipula serialização, compactação e interação com o registro de esquemas. O serializador extrai automaticamente o esquema de um registro sendo gravado em um destino compatível com o registro de esquemas, como o Amazon MSK. Da mesma forma, você instalará o desserializador de código aberto em suas aplicações que consomem dados.
Para instalar as bibliotecas em produtores e consumidores:
Dentro dos arquivos pom.xml, tanto dos produtores quanto dos consumidores, adicione essa dependência com o código abaixo:
<dependency> <groupId>software.amazon.glue</groupId> <artifactId>schema-registry-serde</artifactId> <version>1.1.5</version> </dependency>
Como alternativa, você pode clonar o repositório do registro de esquemas do AWS Glue do GitHub
. Configure seus produtores com estas propriedades obrigatórias:
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); // Can replace StringSerializer.class.getName()) with any other key serializer that you may use props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, GlueSchemaRegistryKafkaSerializer.class.getName()); props.put(AWSSchemaRegistryConstants.AWS_REGION, "us-east-2"); properties.put(AWSSchemaRegistryConstants.DATA_FORMAT, "JSON"); // OR "AVRO"
Se não houver esquemas existentes, o registro automático precisará ser ativado (próxima etapa). Se você tiver um esquema que gostaria de aplicar, substitua “my-schema” (meu esquema) pelo nome do seu esquema. Além disso, o “registry-name” (nome do registro) deve ser fornecido se o registro automático do esquema estiver desativado. Se o esquema é criado sob o “default-registry” (registro padrão), o nome do registro pode ser omitido.
(Opcional) defina qualquer uma destas propriedades opcionais do produtor. Para obter descrições detalhadas das propriedades, consulte o arquivo ReadMe
. props.put(AWSSchemaRegistryConstants.SCHEMA_AUTO_REGISTRATION_SETTING, "true"); // If not passed, uses "false" props.put(AWSSchemaRegistryConstants.SCHEMA_NAME, "my-schema"); // If not passed, uses transport name (topic name in case of Kafka, or stream name in case of Kinesis Data Streams) props.put(AWSSchemaRegistryConstants.REGISTRY_NAME, "my-registry"); // If not passed, uses "default-registry" props.put(AWSSchemaRegistryConstants.CACHE_TIME_TO_LIVE_MILLIS, "86400000"); // If not passed, uses 86400000 (24 Hours) props.put(AWSSchemaRegistryConstants.CACHE_SIZE, "10"); // default value is 200 props.put(AWSSchemaRegistryConstants.COMPATIBILITY_SETTING, Compatibility.FULL); // Pass a compatibility mode. If not passed, uses Compatibility.BACKWARD props.put(AWSSchemaRegistryConstants.DESCRIPTION, "This registry is used for several purposes."); // If not passed, constructs a description props.put(AWSSchemaRegistryConstants.COMPRESSION_TYPE, AWSSchemaRegistryConstants.COMPRESSION.ZLIB); // If not passed, records are sent uncompressed
O registro automático registra a versão do esquema no registro padrão (“default-registry”). Se um
SCHEMA_NAME
não for especificado na etapa anterior, então o nome do tópico será inferido comoSCHEMA_NAME
.Consulte Versionamento e compatibilidade de esquema, para obter mais informações sobre os modos de compatibilidade.
Configure seus consumidores com estas propriedades obrigatórias:
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, GlueSchemaRegistryKafkaDeserializer.class.getName()); props.put(AWSSchemaRegistryConstants.AWS_REGION, "us-east-2"); // Pass an Região da AWS props.put(AWSSchemaRegistryConstants.AVRO_RECORD_TYPE, AvroRecordType.GENERIC_RECORD.getName()); // Only required for AVRO data format
(Opcional) defina essas propriedades opcionais do consumidor. Para obter descrições detalhadas das propriedades, consulte o arquivo ReadMe
. properties.put(AWSSchemaRegistryConstants.CACHE_TIME_TO_LIVE_MILLIS, "86400000"); // If not passed, uses 86400000 props.put(AWSSchemaRegistryConstants.CACHE_SIZE, "10"); // default value is 200 props.put(AWSSchemaRegistryConstants.SECONDARY_DESERIALIZER, "com.amazonaws.services.schemaregistry.deserializers.external.ThirdPartyDeserializer"); // For migration fall back scenario
Usar a AWS CLI para APIs do registro de esquemas do AWS Glue
Para usar a AWS CLI para APIs do registro de esquemas do AWS Glue, certifique-se de atualizar a AWS CLI para a versão mais recente.
Criar um registro
Você pode usar o registro padrão ou criar quantos novos registros forem necessários usando as APIS do AWS Glue ou o console do AWS Glue.
APIs do AWS Glue
Você pode usar estas etapas para executar essa tarefa usando as APIs do AWS Glue.
Para adicionar um novo registro, use a API do Ação CreateRegistry (Python: create_registry). Especifique RegistryName
como o nome do registro a ser criado, com um comprimento máximo de 255, contendo apenas letras, números, hífens, sublinhados, cifrões ou marcas de hash.
Especifique Description
como uma string com não mais do que 2.048 bytes de comprimento, correspondente ao padrão de string com várias linhas de endereço URI.
Como alternativa, especifique um ou mais Tags
para seu registro, como uma matriz de mapa de pares de chave-valor.
aws glue create-registry --registry-name registryName1 --description description
Quando seu registro é criado, ele recebe um nome do recurso da Amazon (ARN), que você pode visualizar no RegistryArn
da resposta da API. Agora que você criou um registro, crie um ou mais esquemas para esse registro.
Console do AWS Glue
Para adicionar um novo registro no console do AWS Glue:
Faça logon no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema registries (Registros de esquemas).
Escolha Add registry (Adicionar registro).
Digite um Registry name (Nome de registro) para o registro composto por letras, números, hifens ou sublinhados. Esse nome não pode ser alterado.
Digite uma Description (Descrição) (opcional) para o registro.
Opcionalmente, aplique uma ou mais tags ao registro. Escolha Add new tag (Adicionar nova tag), especifique um Tag key (Chave de tag) e, opcionalmente, um Tag value (Valor da tag).
Escolha Add registry (Adicionar registro).
![Exemplo de criação de um registro.](images/schema_reg_create_registry.png)
Quando seu registro é criado, ele recebe um nome do recurso da Amazon (ARN), que você pode visualizar escolhendo o registro na lista em Schema registries (Registros de esquemas). Agora que você criou um registro, crie um ou mais esquemas para esse registro.
Lidar com um registro específico (JAVA POJO) para JSON
Você pode usar um plain old Java object (POJO) e transmitir o objeto como um registro. Isso é semelhante à noção de um registro específico no AVRO. O mbknor-jackson-jsonschema
A biblioteca do registro de esquemas do AWS Glue usa o campo “className” injetado no esquema para fornecer um nome de classe totalmente classificado. O campo “className” é usado pelo desserializador para desserializar em um objeto dessa classe.
Example class : @JsonSchemaDescription("This is a car") @JsonSchemaTitle("Simple Car Schema") @Builder @AllArgsConstructor @EqualsAndHashCode // Fully qualified class name to be added to an additionally injected property // called className for deserializer to determine which class to deserialize // the bytes into @JsonSchemaInject( strings = {@JsonSchemaString(path = "className", value = "com.amazonaws.services.schemaregistry.integrationtests.generators.Car")} ) // List of annotations to help infer JSON Schema are defined by https://github.com/mbknor/mbknor-jackson-jsonSchema public class Car { @JsonProperty(required = true) private String make; @JsonProperty(required = true) private String model; @JsonSchemaDefault("true") @JsonProperty public boolean used; @JsonSchemaInject(ints = {@JsonSchemaInt(path = "multipleOf", value = 1000)}) @Max(200000) @JsonProperty private int miles; @Min(2000) @JsonProperty private int year; @JsonProperty private Date purchaseDate; @JsonProperty @JsonFormat(shape = JsonFormat.Shape.NUMBER) private Date listedDate; @JsonProperty private String[] owners; @JsonProperty private Collection<Float> serviceChecks; // Empty constructor is required by Jackson to deserialize bytes // into an Object of this class public Car() {} }
Criar um esquema
Você pode criar um esquema usando as APIs do AWS Glue ou o console do AWS Glue.
APIs do AWS Glue
Você pode usar estas etapas para executar essa tarefa usando as APIs do AWS Glue.
Para adicionar um novo esquema, use a API Ação CreateSchema (Python: create_esquema).
Especifique uma estrutura RegistryId
para indicar um registro para o esquema. Ou omita o RegistryId
para usar o registro padrão.
Especifique um SchemaName
consistindo em letras, números, hifens ou sublinhados e DataFormat
como AVRO
ou JSON
. O DataFormat
, uma vez definido em um esquema, não pode ser alterado.
Especifique um modo de Compatibility
:
Backward (Anterior) (recomendado): o consumidor pode ler a versão atual e a anterior.
Backward all (Todas as anteriores): o consumidor pode ler a versão atual e todas as anteriores.
Forward (Próxima): o consumidor pode ler a versão atual e a subsequente.
Forward all (Todas as próximas): o consumidor pode ler a versão atual e todas as subsequentes.
Full (Completo): combinação de Backward e Forward.
Full all (Completo total): combinação de Backward all e Forward all.
None (Nenhum): nenhuma verificação de compatibilidade é realizada.
Disabled (Desabilitado): impede qualquer versionamento para esse esquema.
Opcionalmente, especifique Tags
para seu esquema.
Especifique uma SchemaDefinition
para definir o esquema no formato de dados Avro, JSON ou Protobuf. Consulte os exemplos.
Para o formato de dados Avro:
aws glue create-schema --registry-id RegistryName="registryName1" --schema-name testschema --compatibility NONE --data-format AVRO --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1" --schema-name testschema --compatibility NONE --data-format AVRO --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}"
Para o formato de dados JSON:
aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaJson --compatibility NONE --data-format JSON --schema-definition "{\"$schema\": \"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"f1\":{\"type\":\"string\"}}}"
Para o formato de dados Protobuf:
aws glue create-schema --registry-id RegistryName="registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
aws glue create-schema --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName" --schema-name testSchemaProtobuf --compatibility NONE --data-format PROTOBUF --schema-definition "syntax = \"proto2\";package org.test;message Basic { optional int32 basic = 1;}"
Console do AWS Glue
Para adicionar um novo esquema usando o console do AWS Glue:
-
Faça login no Console de Gerenciamento da AWS e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema (Esquema).
Escolha Add schema (Adicionar esquema).
Digite um Schema name (Nome do esquema), consistindo em letras, números, hifens, sublinhados, cifrões ou marcas de hash. Esse nome não pode ser alterado.
Escolha o Registry (Registro) em que o esquema será armazenado no menu suspenso. O registro pai não pode ser alterado após a criação.
Deixe Data format (Formato de dados) como Apache Avro ou JSON. Esse formato se aplica a todas as versões desse esquema.
Escolha um Compatibility mode (Modo de compatibilidade).
Backward (Anterior) (recomendado): o receptor pode ler a versão atual e a anterior.
Backward all (Todas as anteriores): o receptor pode ler a versão atual e todas as anteriores.
Forward (Próxima): o remetente pode gravar a versão atual e a anterior.
Forward all (Todas as próximas): o remetente pode gravar a versão atual e todas as anteriores.
Full (Completo): combinação de Backward e Forward.
Full all (Completo total): combinação de Backward All e Forward All.
None (Nenhum): nenhuma verificação de compatibilidade é realizada.
Disabled (Desabilitado): impede qualquer versionamento para esse esquema.
Insira uma Description (Descrição) opcional de até 250 caracteres para o registro.
Opcionalmente, aplique uma ou mais tags ao esquema. Escolha Add new tag (Adicionar nova tag), especifique um Tag key (Chave de tag) e, opcionalmente, um Tag value (Valor da tag).
Na caixa First schema version (Primeira versão do esquema), insira ou cole o esquema inicial.
Para o formato Avro, consulte Trabalhar com o formato de dados Avro
Para o formato JSON, consulte Trabalhar com o formato de dados JSON
Opcionalmente, escolha Add metadata (Adicionar metadados) para adicionar metadados de versão para anotar ou classificar a versão do esquema.
Selecione Create schema and version (Criar esquema e versão).
![Exemplo de criação de um esquema.](images/schema_reg_create_schema2.png)
O esquema é criado e aparece na lista em Schemas (Esquemas).
Trabalhar com o formato de dados Avro
O Avro fornece serviços de serialização e troca de dados. O Avro armazena a definição de dados no formato JSON facilitando a leitura e interpretação. Os dados em si são armazenados em formato binário.
Para obter informações sobre como definir um esquema do Apache Avro, consulte a especificação do Apache Avro
Trabalhar com o formato de dados JSON
Os dados podem ser serializados com o formato JSON. O formato do esquema JSON
Atualizar um esquema ou registro
Uma vez criados, você pode editar seus esquemas, versões de esquema ou registro.
Atualizar um registro
Você pode atualizar um registro usando as APIs do AWS Glue ou o console do AWS Glue. O nome de um registro existente não pode ser editado. Você pode editar a descrição de um registro.
APIs do AWS Glue
Para atualizar um registro existente, use a API Ação UpdateRegistry (Python: update_registry).
Especifique uma estrutura RegistryId
para indicar o registro que você deseja atualizar. Informe uma Description
para alterar a descrição de um registro.
aws glue update-registry --description updatedDescription --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1"
Console do AWS Glue
Para atualizar um registro usando o console do AWS Glue:
-
Faça logon no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema registries (Registros de esquemas).
Escolha um registro na lista de registros, marcando a caixa correspondente.
No menu Action (Ação), escolha Edit registry (Editar registro).
Atualizar um esquema
Você pode atualizar a descrição ou a configuração de compatibilidade de um esquema.
Para atualizar um esquema existente, use a API Ação UpdateSchema (Python: update_schema).
Especifique uma estrutura SchemaId
para indicar o esquema que você deseja atualizar. Um de VersionNumber
ou Compatibility
tem de ser fornecido.
Exemplo de código 11:
aws glue update-schema --description testDescription --schema-id SchemaName="testSchema1",RegistryName="registryName1" --schema-version-number LatestVersion=true --compatibility NONE
aws glue update-schema --description testDescription --schema-id SchemaArn="arn:aws:glue:us-east-2:901234567890:schema/registryName1/testSchema1" --schema-version-number LatestVersion=true --compatibility NONE
Adicionar uma versão de esquema
Quando você adiciona uma versão de esquema, precisa comparar as versões para se certificar de que o novo esquema será aceito.
Para adicionar uma nova versão a um esquema existente, use a API Ação RegisterSchemaVersion (Python: register_schema_version).
Especifique um estrutura SchemaId
para indicar o esquema no qual você deseja adicionar uma versão e uma SchemaDefinition
para definir o esquema.
Exemplo de código 12:
aws glue register-schema-version --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}" --schema-id SchemaArn="arn:aws:glue:us-east-1:901234567890:schema/registryName/testschema"
aws glue register-schema-version --schema-definition "{\"type\": \"record\", \"name\": \"r1\", \"fields\": [ {\"name\": \"f1\", \"type\": \"int\"}, {\"name\": \"f2\", \"type\": \"string\"} ]}" --schema-id SchemaName="testschema",RegistryName="testregistry"
-
Faça logon no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema (Esquema).
Escolha o esquema na lista de esquemas, marcando a caixa correspondente.
Escolha um ou mais esquemas na lista, marcando as caixas.
No menu Action (Ação), escolha Register new version (Registrar nova versão).
Na caixa New version (Nova versão), insira ou cole seu novo esquema.
Escolha Compare with previous version (Comparar com a versão anterior) para ver as diferenças em relação à versão anterior do esquema.
Opcionalmente, escolha Add metadata (Adicionar metadados) para adicionar metadados de versão para anotar ou classificar a versão do esquema. Digite a Key (Chave) e o Value (Valor) opcional.
Escolha Register version (Registrar versão).
![Adicionar uma versão de esquema.](images/schema_reg_add_schema_version.png)
As versões dos esquemas aparecem na lista de versões. Se a versão alterou o modo de compatibilidade, ela será marcada como um ponto de verificação.
Exemplo de comparação de versões de esquema
Quando você escolher Compare with previous version (Comparar com a versão anterior), você verá a versão nova e a anterior exibidas juntas. As informações alteradas serão destacadas da seguinte forma:
Amarelo: indica informações alteradas.
Verde: indica o conteúdo adicionado na versão mais recente.
Vermelho: indica o conteúdo removido da versão mais recente.
Você também pode comparar com versões anteriores.
![Exemplo de comparação de versões de esquema.](images/schema_reg_version_comparison.png)
Excluir um esquema ou registro
Excluir um esquema, uma versão de esquema ou um registro são ações permanentes que não podem ser desfeitas.
Excluir um esquema
Você pode querer excluir um esquema quando ele não for mais usado dentro de um registro usando o AWS Management Console ou a API Ação DeleteSchema (Python: delete_schema).
Excluir um ou mais esquemas é uma ação permanente que não pode ser desfeita. Certifique-se de que o esquema ou esquemas não são mais necessários.
Para excluir um esquema do registro, chame a API Ação DeleteSchema (Python: delete_schema), especificando a estrutura SchemaId
para identificar o esquema.
Por exemplo:
aws glue delete-schema --schema-id SchemaArn="arn:aws:glue:us-east-2:901234567890:schema/registryName1/schemaname"
aws glue delete-schema --schema-id SchemaName="TestSchema6-deleteschemabyname",RegistryName="default-registry"
Console do AWS Glue
Para excluir um esquema com o console do AWS Glue:
-
Faça logon no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema registries (Registros de esquemas).
Escolha o registro que contém o esquema na lista de registros.
Escolha um ou mais esquemas na lista, marcando as caixas.
No menu Actions (Ações), escolha Delete schema (Excluir esquema).
Insira o texto
Delete
no campo para confirmar a exclusão.Escolha Excluir.
Os esquemas especificados são excluídos do registro.
Excluir uma versão de esquema
À medida que os esquemas se acumulam no registro, você pode querer excluir versões de esquema indesejadas usando o AWS Management Console ou a API Ação DeleteSchemaVersions (Python: delete_schema_versions). Excluir uma ou mais versões de esquema é uma ação permanente que não pode ser desfeita. Certifique-se de que as versões de esquema não são mais necessárias.
Ao excluir versões de esquema, observe as seguintes restrições:
Você não pode excluir uma versão marcada como ponto de verificação.
O intervalo de versões contíguas não pode ser superior a 25.
A versão mais recente do esquema não deve estar em estado pendente.
Especifique a estrutura SchemaId
para identificar o esquema e especifique Versions
como um intervalo de versões a serem excluídas. Para obter mais informações sobre como especificar uma versão ou intervalo de versões, consulte Ação DeleteRegistry (Python: delete_registry). As versões de esquema especificadas são excluídas do registro.
Chamar a API Ação ListSchemaVersions (Python: list_schema_versions) após essa chamada listará o status das versões excluídas.
Por exemplo:
aws glue delete-schema-versions --schema-id SchemaName="TestSchema6",RegistryName="default-registry" --versions "1-1"
aws glue delete-schema-versions --schema-id SchemaArn="arn:aws:glue:us-east-2:901234567890:schema/default-registry/TestSchema6-NON-Existent" --versions "1-1"
-
Faça logon no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema registries (Registros de esquemas).
Escolha o registro que contém o esquema na lista de registros.
Escolha um ou mais esquemas na lista, marcando as caixas.
No menu Actions (Ações), escolha Delete schema (Excluir esquema).
Insira o texto
Delete
no campo para confirmar a exclusão.Escolha Excluir.
As versões de esquema especificadas são excluídas do registro.
Excluir um registro
Você pode querer excluir um registro quando os esquemas que ele contém não devem mais ser organizados nele. Você precisará reatribuir esses esquemas a outro registro.
Excluir um ou mais registros é uma ação permanente que não pode ser desfeita. Certifique-se de que o registro ou registros não são mais necessários.
O registro padrão pode ser excluído usando a AWS CLI.
API do AWS Glue
Para excluir todo o registro, incluindo o esquema e todas as suas versões, chame a API Ação DeleteRegistry (Python: delete_registry). Especifique uma estrutura RegistryId
para identificar o registro.
Por exemplo:
aws glue delete-registry --registry-id RegistryArn="arn:aws:glue:us-east-2:901234567890:registry/registryName1"
aws glue delete-registry --registry-id RegistryName="TestRegistry-deletebyname"
Para obter o status da operação de exclusão, é possível chamar a API GetRegistry
após a chamada assíncrona.
Console do AWS Glue
Para excluir um registro do console do AWS Glue:
-
Faça logon no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/
. No painel de navegação, em Data catalog (Catálogo de dados), escolha Schema registries (Registros de esquemas).
Escolha um registro na lista, marcando uma caixa.
No menu Action (Ação), escolha Delete registry (Excluir registro).
Insira o texto
Delete
no campo para confirmar a exclusão.Escolha Excluir.
Os registros que você selecionou são excluídos do AWS Glue.
Exemplos do IAM para serializadores
nota
As políticas gerenciadas pela AWS concedem as permissões necessárias para casos de uso comuns. Para obter informações sobre como usar políticas gerenciadas para gerenciar o registro do esquema, consulte AWS políticas gerenciadas (predefinidas) para AWS Glue.
Para serializadores, você deve criar uma política mínima semelhante à abaixo, para lhe dar a capacidade de encontrar o schemaVersionId
para uma determinada definição de esquema. Observe que você deve ter permissões de leitura no registro para ler os esquemas no registro. Você pode limitar os registros que podem ser lidos usando a cláusula Resource
.
Exemplo de código 13:
{ "Sid" : "GetSchemaByDefinition", "Effect" : "Allow", "Action" : [ "glue:GetSchemaByDefinition" ], "Resource" : ["arn:aws:glue:us-east-2:012345678:registry/registryname-1", "arn:aws:glue:us-east-2:012345678:schema/registryname-1/schemaname-1", "arn:aws:glue:us-east-2:012345678:schema/registryname-1/schemaname-2" ] }
Além disso, você também pode permitir que os produtores criem novos esquemas e versões ao incluir os seguintes métodos extras. Observe que você deve ser capaz de inspecionar o registro para adicionar/remover/evoluir os esquemas dentro dele. Você pode limitar os registros que podem ser inspecionados usando a cláusula Resource
.
Exemplo de código 14:
{ "Sid" : "RegisterSchemaWithMetadata", "Effect" : "Allow", "Action" : [ "glue:GetSchemaByDefinition", "glue:CreateSchema", "glue:RegisterSchemaVersion", "glue:PutSchemaVersionMetadata", ], "Resource" : ["arn:aws:glue:
aws-region
:123456789012:registry/registryname-1", "arn:aws:glue:aws-region
:123456789012:schema/registryname-1/schemaname-1", "arn:aws:glue:aws-region
:123456789012:schema/registryname-1/schemaname-2" ] }
Exemplos do IAM para desserializadores
Para desserializadores (lado do consumidor), você deve criar uma política semelhante à abaixo para permitir que o desserializador busque o esquema do registro de esquemas para desserialização. Observe que você deve ser capaz de inspecionar o registro a fim de buscar os esquemas dentro dele.
Exemplo de código 15:
{ "Sid" : "GetSchemaVersion", "Effect" : "Allow", "Action" : [ "glue:GetSchemaVersion" ], "Resource" : ["*"] }
Conectividade privada usando AWS PrivateLink
Você pode usar o AWS PrivateLink para conectar a VPC do produtor de dados ao AWS Glue definindo um endpoint da VPC de interface para o AWS Glue. Quando você usa um endpoint da VPC de interface, a comunicação entre sua VPC e o AWS Glue é realizada inteiramente dentro da rede da AWS. Para obter mais informações, consulte Usar o AWS Glue com endpoints da VPC.
Acessar métricas do Amazon CloudWatch
As métricas do Amazon CloudWatch estão disponíveis como parte do nível gratuito do CloudWatch. Você também pode visualizar essas métricas no console do CloudWatch. As métricas de nível de API incluem CreateSchema (sucesso e latência), GetSchemaByDefinition (sucesso e latência), GetSchemaVersion (sucesso e latência), RegisterSchemaVersion (sucesso e latência) e PutSchemaVersionMetadata (sucesso e latência). As métricas de nível de recurso incluem Registry.ThrottledByLimit, SchemaVersion.ThrottledByLimit e SchemaVersion.Size.
Exemplo do modelo do AWS CloudFormation para o registro de esquemas
Veja a seguir um modelo de exemplo para criar recursos do registro de esquemas no AWS CloudFormation. Para criar essa pilha em sua conta, copie o modelo acima em um arquivo SampleTemplate.yaml
e execute o seguinte comando:
aws cloudformation create-stack --stack-name ABCSchemaRegistryStack --template-body "'cat SampleTemplate.yaml'"
Este exemplo usa AWS::Glue::Registry
para criar um registro, AWS::Glue::Schema
para criar um esquema, AWS::Glue::SchemaVersion
para criar uma versão de esquema e AWS::Glue::SchemaVersionMetadata
para preencher os metadados da versão do esquema.
Description: "A sample CloudFormation template for creating Schema Registry resources." Resources: ABCRegistry: Type: "AWS::Glue::Registry" Properties: Name: "ABCSchemaRegistry" Description: "ABC Corp. Schema Registry" Tags: - Key: "Project" Value: "Foo" ABCSchema: Type: "AWS::Glue::Schema" Properties: Registry: Arn: !Ref ABCRegistry Name: "TestSchema" Compatibility: "NONE" DataFormat: "AVRO" SchemaDefinition: > {"namespace":"foo.avro","type":"record","name":"user","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":"int"}]} Tags: - Key: "Project" Value: "Foo" SecondSchemaVersion: Type: "AWS::Glue::SchemaVersion" Properties: Schema: SchemaArn: !Ref ABCSchema SchemaDefinition: > {"namespace":"foo.avro","type":"record","name":"user","fields":[{"name":"status","type":"string", "default":"ON"}, {"name":"name","type":"string"},{"name":"favorite_number","type":"int"}]} FirstSchemaVersionMetadata: Type: "AWS::Glue::SchemaVersionMetadata" Properties: SchemaVersionId: !GetAtt ABCSchema.InitialSchemaVersionId Key: "Application" Value: "Kinesis" SecondSchemaVersionMetadata: Type: "AWS::Glue::SchemaVersionMetadata" Properties: SchemaVersionId: !Ref SecondSchemaVersion Key: "Application" Value: "Kinesis"