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á.
MSK
O objeto que descreve um tipo de origem do evento MSK. Para obter mais informações, consulte Como usar AWS Lambda com o Amazon MSK no Guia do AWS Lambda desenvolvedor.
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.
YAML
BatchSize:IntegerBisectBatchOnFunctionError:BooleanConsumerGroupId:StringDestinationConfig:DestinationConfigEnabled:BooleanFilterCriteria:FilterCriteriaFunctionResponseTypes:ListKmsKeyArn:StringMaximumBatchingWindowInSeconds:IntegerMaximumRecordAgeInSeconds:IntegerMaximumRetryAttempts:IntegerProvisionedPollerConfig:ProvisionedPollerConfigSchemaRegistryConfig:SchemaRegistryConfigSourceAccessConfigurations:SourceAccessConfigurationsStartingPosition:StringStartingPositionTimestamp:DoubleStream:StringTopics:List
Propriedades
-
BatchSize -
O número máximo de registros em cada batch que o Lambda extrai da sua transmissão ou fila e envia para sua função. O Lambda transmite todos os registros no batch para a função em uma única chamada até o limite de carga útil para invocação síncrona (6 MB).
Padrão: 100
Faixa válida: valor mínimo de 1. Valor máximo de 10.000.
Tipo: inteiro
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
BatchSizepropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
BisectBatchOnFunctionErrorpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
AmazonManagedKafkaConfigurationpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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 do Amazon MSK.
Digite: DestinationConfig
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
DestinationConfigpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
Enabledpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
FilterCriteria -
Um objeto que define os critérios que determinam 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
FilterCriteriapropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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:
ReportBatchItemFailuresTipo: lista
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
FunctionResponseTypespropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
KmsKeyArnpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
MaximumBatchingWindowInSeconds -
O máximo de tempo para reunir registros antes de invocar a função, em segundos.
Tipo: inteiro
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
MaximumBatchingWindowInSecondspropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
MaximumRecordAgeInSecondspropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
MaximumRetryAttemptspropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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
ProvisionedPollerConfigpropriedade de umAWS::Lambda::EventSourceMappingrecurso. SchemaRegistryConfig-
Configuração para usar um registro de esquema com a origem de eventos do Kafka.
nota
Esse recurso
ProvisionedPollerConfigprecisa ser configurado.Tipo: SchemaRegistryConfig
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
AmazonManagedKafkaEventSourceConfigpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
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:
CLIENT_CERTIFICATE_TLS_AUTHTipo: lista de SourceAccessConfiguration
Obrigatório: não
CloudFormation compatibilidade: essa propriedade faz parte da AmazonManagedKafkaEventSourceConfigpropriedade de um recurso.
AWS::Lambda::EventSourceMapping -
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_HORIZONTipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
StartingPositionpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
-
StartingPositionTimestamp -
O tempo a partir do qual iniciar a leitura, em segundos no horário do Unix. Defina
StartingPositionTimestampquandoStartingPositioné especificado como .AT_TIMESTAMPTipo: duplo
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
StartingPositionTimestamppropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
Stream -
O nome de recurso da Amazon (ARN) do fluxo de dados ou um consumidor de fluxo.
Tipo: string
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
EventSourceArnpropriedade de umAWS::Lambda::EventSourceMappingrecurso. -
Topics -
O nome do tópico do Kafka.
Tipo: lista
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
Topicspropriedade de umAWS::Lambda::EventSourceMappingrecurso.
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 MskClusterName4: 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: KafkaClusterPermissions PolicyDocument: Statement: - Action: [kafka:DescribeClusterV2, kafka:GetBootstrapBrokers] Effect: Allow Resource: 'arn:aws:kafka:us-east-1:123456789012:cluster/*' - 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} MyMskCluster: Type: AWS::MSK::Cluster Properties: BrokerNodeGroupInfo: ClientSubnets: - Ref: PreCreatedSubnetOne - Ref: PreCreatedSubnetTwo InstanceType: kafka.t3.small StorageInfo: EBSStorageInfo: VolumeSize: 1 ClusterName: Ref: MskClusterName4 KafkaVersion: 3.8.x NumberOfBrokerNodes: 2 MyMskStreamProcessor: Type: AWS::Serverless::Function Properties: Runtime: nodejs18.x Handler: index.handler CodeUri: ${codeuri} Role: Fn::GetAtt: [MyLambdaExecutionRole, Arn] Events: MyMskEvent: Type: MSK Properties: StartingPosition: LATEST Stream: Ref: MyMskCluster SourceAccessConfigurations: - Type: SASL_SCRAM_512_AUTH URI: !Sub arn:${AWS::Partition}:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c Topics: - SchemaRegistryTestTopic 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
Exemplo do Amazon MSK para cluster existente
Veja a seguir um exemplo de um tipo de fonte de MSK evento para um cluster Amazon MSK que já existe em um Conta da AWS.
YAML
Events: MSKEvent: Type: MSK Properties: StartingPosition: LATEST Stream: arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2 Topics: - MyTopic
Exemplo do Amazon MSK para cluster declarado no mesmo modelo
Veja a seguir um exemplo de um tipo de fonte de MSK evento para um cluster Amazon MSK declarado no mesmo arquivo de modelo.
YAML
Events: MSKEvent: Type: MSK Properties: StartingPosition: LATEST Stream: Ref: MyMskCluster # This must be the name of an MSK cluster declared in the same template file Topics: - MyTopic
Origem de eventos MSK com o Schema Registry
Veja a seguir um exemplo de um tipo de origem de evento do MSK configurado com o esquema de registro.
Events: MSKEvent: Type: MSK Properties: StartingPosition: LATEST Stream: Ref: MyMskCluster Topics: - SchemaRegistryTestTopic ProvisionedPollerConfig: MinimumPollers: 1 SchemaRegistryConfig: SchemaRegistryURI: !Sub arn:${AWS::Partition}:glue:us-west-2:123456789012:registry/myregistry EventRecordFormat: JSON SchemaValidationConfigs: - Attribute: KEY - Attribute: VALUE
Origem de eventos MSK com o Confluent Schema Registry
Veja a seguir um exemplo de um tipo de origem de eventos do MSK configurado com o Confluent Schema Registry.
Events: MSKEvent: Type: MSK Properties: StartingPosition: LATEST Stream: Ref: MyMskCluster Topics: - SchemaRegistryTestTopic 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