SelfManagedKafka - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SelfManagedKafka

L'oggetto che descrive un tipo di origine SelfManagedKafka dell'evento. Per ulteriori informazioni, consulta Utilizzo AWS Lambda con Apache Kafka autogestito nella Guida per gli sviluppatori.AWS Lambda

AWS Serverless Application Model (AWS SAM) genera una AWS::Lambda::EventSourceMappingrisorsa quando viene impostato questo tipo di evento.

Per utilizzare Schema Registry, devi definire autorizzazioni di ruolo IAM specifiche per la tua funzione. Vedi Configurazione completa con ruoli IAM per un esempio della configurazione richiesta.

Sintassi

Per dichiarare questa entità nel AWS SAM modello, utilizza la seguente sintassi.

Proprietà

BatchSize

Il numero massimo di record in ogni batch che Lambda estrae dal tuo stream e invia alla tua funzione.

Tipo: integer

Required: No

Impostazione predefinita: 100

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla BatchSize proprietà di una AWS::Lambda::EventSourceMapping risorsa.

Minimum: 1

Maximum: 10000

ConsumerGroupId

Una stringa che configura il modo in cui gli eventi verranno letti dagli argomenti di Kafka.

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla SelfManagedKafkaConfiguration proprietà di una risorsa. AWS::Lambda::EventSourceMapping

DestinationConfig

Oggetto di configurazione che specifica la destinazione di un evento dopo che Lambda lo elabora.

Utilizzate questa proprietà per specificare la destinazione delle chiamate fallite dalla fonte di eventi Kafka autogestita.

Tipo: DestinationConfig

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla proprietà di una risorsa. DestinationConfig AWS::Lambda::EventSourceMapping

Enabled

Disabilita la mappatura dell'origine eventi per sospendere il polling e la chiamata.

Tipo: Booleano

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla Enabled proprietà di una AWS::Lambda::EventSourceMapping risorsa.

FilterCriteria

Un oggetto che definisce i criteri per determinare se Lambda deve elaborare un evento. Per ulteriori informazioni, consulta il filtro AWS Lambda degli eventi nella Guida per gli AWS Lambda sviluppatori.

Tipo: FilterCriteria

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla FilterCriteria proprietà di una AWS::Lambda::EventSourceMapping risorsa.

KafkaBootstrapServers

L'elenco dei server bootstrap per i tuoi broker Kafka. Includi la porta, ad esempio broker.example.com:xxxx

Tipo: Elenco

Required: No

AWS CloudFormation compatibilità: questa proprietà è unica AWS SAM e non ha un AWS CloudFormation equivalente.

KmsKeyArn

L'Amazon Resource Name (ARN) della chiave per crittografare le informazioni relative a questo evento.

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla KmsKeyArn proprietà di una AWS::Lambda::EventSourceMapping risorsa.

ProvisionedPollerConfig

Configurazione per aumentare la quantità di poller utilizzati per calcolare le mappature delle sorgenti degli eventi. Questa configurazione consente un minimo di 1 poller e un massimo di 20 poller. Per un esempio, fare riferimento a ProvisionedPollerConfig esempio

Tipo: ProvisionedPollerConfig

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla ProvisionedPollerConfig proprietà di una AWS::Lambda::EventSourceMapping risorsa.

SchemaRegistryConfig

Configurazione per l'utilizzo di un registro degli schemi con la fonte di eventi Kafka autogestita.

Nota

Questa funzionalità deve essere configurataProvisionedPollerConfig.

Tipo: SchemaRegistryConfig

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla SelfManagedKafkaEventSourceConfig proprietà di una AWS::Lambda::EventSourceMapping risorsa.

SourceAccessConfigurations

Un array del protocollo di autenticazione, dei componenti VPC o dell'host virtuale per proteggere e definire l'origine eventi.

Valori validi: BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE

Tipo: elenco di SourceAccessConfiguration

Campo obbligatorio: sì

AWS CloudFormation compatibilità: questa proprietà fa parte della SelfManagedKafkaEventSourceConfigproprietà di una AWS::Lambda::EventSourceMapping risorsa.

StartingPosition

La posizione in un flusso da cui iniziare la lettura.

  • AT_TIMESTAMP— Specificare l'ora a partire dalla quale iniziare a leggere i record.

  • LATEST— Leggi solo i nuovi record.

  • TRIM_HORIZON— Elabora tutti i record disponibili.

Valori validi: AT_TIMESTAMP | LATEST | TRIM_HORIZON

Tipo: stringa

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla StartingPosition proprietà di una AWS::Lambda::EventSourceMapping risorsa.

StartingPositionTimestamp

L'ora da cui iniziare a leggere, in secondi di tempo Unix. Definisce StartingPositionTimestamp quando StartingPosition è specificato comeAT_TIMESTAMP.

Tipo: double

Required: No

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla StartingPositionTimestamp proprietà di una AWS::Lambda::EventSourceMapping risorsa.

Topics

Il nome dell'argomento Kafka.

Tipo: Elenco

Campo obbligatorio: sì

AWS CloudFormation compatibilità: questa proprietà viene passata direttamente alla Topics proprietà di una AWS::Lambda::EventSourceMapping risorsa.

Esempi

Configurazione completa con ruoli IAM

L'esempio seguente mostra una configurazione completa che include la configurazione del ruolo IAM richiesta per l'utilizzo di 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 esempio

ProvisionedPollerConfig: MinimumPollers: 1 MaximumPollers: 20

Fonte di eventi Kafka autogestita

Di seguito è riportato un esempio di tipo di sorgente di SelfManagedKafka eventi.

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 di eventi Kafka gestita autonomamente con Schema Registry AWS Glue

Di seguito è riportato un esempio di un tipo di sorgente di SelfManagedKafka eventi configurato con 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

Fonte di eventi Kafka gestita autonomamente con Confluent Schema Registry

Di seguito è riportato un esempio di un tipo di sorgente di SelfManagedKafka eventi configurato con 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