SelfManagedKafka - AWS Serverless Application Model

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á.

SelfManagedKafka

O objeto que descreve um tipo de fonte de evento SelfManagedKafka. Para obter mais informações, consulte Usando AWS Lambda com o Apache Kafka autogerenciado no Guia do desenvolvedor.AWS Lambda

AWS Serverless Application Model (AWS SAM) gera um AWS::Lambda::EventSourceMappingrecurso quando esse tipo de evento é definido.

Para usar o Schema Registry, você precisa definir permissões específicas do perfil do IAM para sua função. Consulte Configuração completa com perfis do IAM para ver um exemplo da configuração necessária.

Sintaxe

Para declarar essa entidade em seu AWS SAM modelo, use a sintaxe a seguir.

Propriedades

BatchSize

O número máximo de registros em cada batch que o Lambda extrai da sua transmissão e envia para sua função.

Tipo: inteiro

Obrigatório: não

Padrão: 100

CloudFormation compatibilidade: essa propriedade é passada diretamente para a BatchSize propriedade de um AWS::Lambda::EventSourceMapping recurso.

Mínimo: 1

Maximum: 10000

BisectBatchOnFunctionError

Se a função retornar um erro, divida o lote em dois e tente novamente.

Tipo: booliano

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a BisectBatchOnFunctionError propriedade de um AWS::Lambda::EventSourceMapping recurso.

ConsumerGroupId

Uma string que configura como os eventos serão lidos nos tópicos do Kafka.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a SelfManagedKafkaConfiguration propriedade de um AWS::Lambda::EventSourceMapping recurso.

DestinationConfig

Um objeto de configuração que especifica o destino de um evento depois que o Lambda processá-lo.

Use essa propriedade para especificar o destino de invocações com falha da fonte de eventos autogerenciada do Kafka.

Digite: DestinationConfig

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a DestinationConfig propriedade de um AWS::Lambda::EventSourceMapping recurso.

Enabled

Desabilita o mapeamento de origens de eventos para pausar a sondagem e a invocação.

Tipo: booliano

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a Enabled propriedade de um AWS::Lambda::EventSourceMapping recurso.

FilterCriteria

Um objeto que define os critérios para determinar se o Lambda deve processar um evento. Para obter mais informações, consulte Filtrando eventos do AWS Lambda no Guia do desenvolvedor do AWS Lambda .

Digite: FilterCriteria

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a FilterCriteria propriedade de um AWS::Lambda::EventSourceMapping recurso.

KafkaBootstrapServers

A lista de servidores de bootstrap para seus corretores Kafka. Inclua a porta, por exemplo broker.example.com:xxxx

Tipo: lista

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.

FunctionResponseTypes

Uma lista de tipos de resposta atuais aplicados ao mapeamento da origem do evento. Para obter mais informações, consulte Relatar falhas de itens em lote no Guia do desenvolvedor do AWS Lambda .

Valores válidos: ReportBatchItemFailures

Tipo: lista

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a FunctionResponseTypes propriedade de um AWS::Lambda::EventSourceMapping recurso.

KmsKeyArn

O nome do recurso da Amazon (ARN) da chave para criptografar informações relacionadas a esse evento.

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a KmsKeyArn propriedade de um AWS::Lambda::EventSourceMapping recurso.

MaximumRecordAgeInSeconds

A idade máxima de um registro que o Lambda envia a uma função para processamento.

Tipo: inteiro

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a MaximumRecordAgeInSeconds propriedade de um AWS::Lambda::EventSourceMapping recurso.

MaximumRetryAttempts

O número máximo de vezes para tentar novamente quando a função retorna um erro.

Tipo: inteiro

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a MaximumRetryAttempts propriedade de um AWS::Lambda::EventSourceMapping recurso.

ProvisionedPollerConfig

Configuração para aumentar a quantidade de sondagens usados para computar os mapeamentos da origem do evento. Essa configuração permite um mínimo de 1 poller e um máximo de 2.000 pollers. Para obter um exemplo, consulte ProvisionedPollerConfig exemplo

Digite: ProvisionedPollerConfig

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a ProvisionedPollerConfig propriedade de um AWS::Lambda::EventSourceMapping recurso.

SchemaRegistryConfig

Configuração para usar um registro de esquema com a origem de eventos autogerenciada do Kafka.

nota

Esse recurso ProvisionedPollerConfig precisa ser configurado.

Tipo: SchemaRegistryConfig

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a SelfManagedKafkaEventSourceConfig propriedade de um AWS::Lambda::EventSourceMapping recurso.

SourceAccessConfigurations

Uma matriz do protocolo de autenticação, os componentes da VPC ou o host virtual para proteger e definir a fonte de eventos.

Valores válidos: BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE

Tipo: lista de SourceAccessConfiguration

Obrigatório: sim

CloudFormation compatibilidade: essa propriedade faz parte da SelfManagedKafkaEventSourceConfigpropriedade de um AWS::Lambda::EventSourceMapping recurso.

StartingPosition

A posição em um fluxo da qual você deseja iniciar a leitura.

  • AT_TIMESTAMP – Especifique um tempo a partir do qual iniciar a leitura dos registros.

  • LATEST – Leia somente registros novos.

  • TRIM_HORIZON – Processe todos os registros disponíveis.

Valores válidos: AT_TIMESTAMP | LATEST | TRIM_HORIZON

Tipo: string

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a StartingPosition propriedade de um AWS::Lambda::EventSourceMapping recurso.

StartingPositionTimestamp

O tempo a partir do qual iniciar a leitura, em segundos no horário do Unix. Defina StartingPositionTimestamp quando StartingPosition é especificado como .AT_TIMESTAMP

Tipo: duplo

Obrigatório: não

CloudFormation compatibilidade: essa propriedade é passada diretamente para a StartingPositionTimestamp propriedade de um AWS::Lambda::EventSourceMapping recurso.

Topics

O nome do tópico do Kafka.

Tipo: lista

Obrigatório: Sim

CloudFormation compatibilidade: essa propriedade é passada diretamente para a Topics propriedade de um AWS::Lambda::EventSourceMapping recurso.

Exemplos

Configuração completa com perfis do IAM

O exemplo a seguir mostra uma configuração completa, incluindo a configuração do perfil do IAM necessário para usar o Schema Registry:

Parameters: PreCreatedSubnetOne: Type: String PreCreatedSubnetTwo: Type: String Resources: MyLambdaExecutionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17 ' Statement: - Action: [sts:AssumeRole] Effect: Allow Principal: Service: [lambda.amazonaws.com] Policies: - PolicyName: KafkaAuthPolicy PolicyDocument: Statement: - Action: [secretsmanager:GetSecretValue, kms:Decrypt] Effect: "Allow" Resource: ['arn:aws:secretsmanager:us-west-2:123456789012:secret:kafkaSecret-******', 'arn:aws:kms:us-west-2:123456789012:key/keyId'] - PolicyName: ENIPolicy PolicyDocument: Statement: - Action: [ec2:CreateNetworkInterface, ec2:DescribeNetworkInterfaces, ec2:DescribeVpcs, ec2:DeleteNetworkInterface, ec2:DescribeSubnets, ec2:DescribeSecurityGroups] Effect: Allow Resource: '*' - PolicyName: SchemaRegistryPolicy PolicyDocument: Statement: - Action: [glue:GetRegistry] Effect: Allow Resource: 'arn:aws:glue:{region}:{account-id}:registry/{registry-name}' - PolicyName: SchemaVersionsPolicy PolicyDocument: Statement: - Action: [glue:GetSchemaVersions] Effect: Allow Resource: '*' ManagedPolicyArns: - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Tags: - {Value: SAM, Key: lambda:createdBy} MyKafkaProcessor: Type: AWS::Serverless::Function Properties: Runtime: nodejs18.x Handler: index.handler CodeUri: ${codeuri} Role: Fn::GetAtt: [MyLambdaExecutionRole, Arn] Events: SelfManagedKafkaEvent: Type: SelfManagedKafka Properties: KafkaBootstrapServers: - my-kafka-broker-1:9092 - my-kafka-broker-2:9092 Topics: - SchemaRegistryTestTopic StartingPosition: LATEST SourceAccessConfigurations: - Type: VPC_SUBNET URI: subnet:subnet-12345678 - Type: VPC_SECURITY_GROUP URI: security_group:sg-12345678 - Type: BASIC_AUTH URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c ProvisionedPollerConfig: MinimumPollers: 1 SchemaRegistryConfig: AccessConfigs: - Type: BASIC_AUTH URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c SchemaValidationConfigs: - Attribute: KEY EventRecordFormat: JSON SchemaRegistryURI: !Sub arn:${AWS::Partition}:glue:us-west-2:123456789012:registry/myregistry

ProvisionedPollerConfig exemplo

ProvisionedPollerConfig: MinimumPollers: 1 MaximumPollers: 200

Fonte autogerenciada de eventos Kafka

O exemplo a seguir mostra o tipo de origem de um evento SelfManagedKafka.

YAML

Events: SelfManagedKafkaEvent: Type: SelfManagedKafka Properties: BatchSize: 1000 Enabled: true KafkaBootstrapServers: - abc.xyz.com:xxxx SourceAccessConfigurations: - Type: BASIC_AUTH URI: arn:aws:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c Topics: - MyKafkaTopic

Fonte de eventos Kafka autogerenciada com registro de esquemas AWS Glue

Veja a seguir um exemplo de um tipo de fonte de SelfManagedKafka evento configurado com o AWS Glue Schema Registry.

Events: SelfManagedKafkaEvent: Type: SelfManagedKafka Properties: KafkaBootstrapServers: - abc.xyz.com:9092 Topics: - SchemaRegistryTestTopic StartingPosition: LATEST ProvisionedPollerConfig: MinimumPollers: 1 SchemaRegistryConfig: SchemaRegistryURI: !Sub arn:${AWS::Partition}:glue:us-west-2:123456789012:registry/myregistry EventRecordFormat: JSON SchemaValidationConfigs: - Attribute: KEY - Attribute: VALUE SourceAccessConfigurations: - Type: VPC_SUBNET URI: subnet:subnet-12345678 - Type: VPC_SECURITY_GROUP URI: security_group:sg-12345678

Origem de eventos Kafka autogerenciada com o Confluent Schema Registry

Veja a seguir um exemplo de um tipo de origem de eventos do SelfManagedKafka configurado com o Confluent Schema Registry.

Events: SelfManagedKafkaEvent: Type: SelfManagedKafka Properties: KafkaBootstrapServers: - abc.xyz.com:9092 Topics: - SchemaRegistryTestTopic StartingPosition: LATEST ProvisionedPollerConfig: MinimumPollers: 1 SchemaRegistryConfig: SchemaRegistryURI: https://my-schema-registry.confluent.cloud AccessConfigs: - Type: BASIC_AUTH URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-secret EventRecordFormat: JSON SchemaValidationConfigs: - Attribute: KEY - Attribute: VALUE SourceAccessConfigurations: - Type: VPC_SUBNET URI: subnet:subnet-12345678 - Type: VPC_SECURITY_GROUP URI: security_group:sg-12345678 - Type: BASIC_AUTH URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:kafka-secret