SelfManagedKafka - AWS Serverless Application Model

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

SelfManagedKafka

Das Objekt, das einen SelfManagedKafka Ereignisquellentyp beschreibt. Weitere Informationen finden Sie unter Verwendung AWS Lambda mit selbstverwaltetem Apache Kafka im AWS Lambda Entwicklerhandbuch.

AWS Serverless Application Model (AWS SAM) generiert eine AWS::Lambda::EventSourceMappingRessource, wenn dieser Ereignistyp gesetzt ist.

Um Schema Registry verwenden zu können, müssen Sie spezifische IAM-Rollenberechtigungen für Ihre Funktion definieren. Ein Beispiel für die erforderliche Konfiguration finden Sie unter Vollständige Einrichtung mit IAM-Rollen.

Syntax

Verwenden Sie die folgende Syntax, um diese Entität in Ihrer AWS SAM Vorlage zu deklarieren.

Eigenschaften

BatchSize

Die maximale Anzahl von Datensätzen in jedem Batch, die Lambda aus Ihrem Stream abruft und an Ihre Funktion sendet.

Typ: Ganzzahl

Required: No

Standard: 100

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die BatchSize Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

Minimum: 1

Maximum: 10000

BisectBatchOnFunctionError

Wenn die Funktion einen Fehler zurückgibt, teilen Sie den Stapel in zwei Teile auf und versuchen Sie es erneut.

Typ: Boolesch

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die BisectBatchOnFunctionError Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

ConsumerGroupId

Eine Zeichenfolge, die konfiguriert, wie Ereignisse aus Kafka-Themen gelesen werden.

Typ: Zeichenfolge

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die SelfManagedKafkaConfiguration Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

DestinationConfig

Ein Konfigurationsobjekt, das das Ziel eines Ereignisses angibt, nachdem Lambda es verarbeitet hat.

Verwenden Sie diese Eigenschaft, um das Ziel fehlgeschlagener Aufrufe aus der selbstverwalteten Kafka-Ereignisquelle anzugeben.

Typ: DestinationConfig

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die DestinationConfig Eigenschaft einer Ressource übergeben. AWS::Lambda::EventSourceMapping

Enabled

Deaktiviert den Ereignis-Quellzuweisung zum Anhalten und Aufrufen von Abfragen.

Typ: Boolesch

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die Enabled Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

FilterCriteria

Ein Objekt, das die Kriterien definiert, anhand derer bestimmt wird, ob Lambda ein Ereignis verarbeiten soll. Weitere Informationen finden Sie unter AWS Lambda Ereignisfilterung im AWS Lambda Entwicklerhandbuch.

Typ: FilterCriteria

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die FilterCriteria Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

KafkaBootstrapServers

Die Liste der Bootstrap-Server für Ihre Kafka-Broker. Geben Sie zum Beispiel den Port an broker.example.com:xxxx

Typ: Liste

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft ist einzigartig für AWS SAM und hat kein CloudFormation Äquivalent.

FunctionResponseTypes

Eine Liste der Antworttypen, die derzeit auf die Ereignisquellenzuordnung angewendet werden. Weitere Informationen finden Sie unter Melden von Batch-Elementen im AWS Lambda -Leitfaden für Entwickler.

Gültige Werte: ReportBatchItemFailures

Typ: Liste

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die FunctionResponseTypes Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

KmsKeyArn

Der Amazon-Ressourcenname (ARN) des Schlüssels zur Verschlüsselung von Informationen im Zusammenhang mit diesem Ereignis.

Typ: Zeichenfolge

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die KmsKeyArn Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

MaximumRecordAgeInSeconds

Das maximale Alter eines Datensatzes, den Lambda zur Verarbeitung an eine Funktion sendet.

Typ: Ganzzahl

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die MaximumRecordAgeInSeconds Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

MaximumRetryAttempts

Die maximale Anzahl der Wiederholungen, wenn die Funktion einen Fehler zurückgibt.

Typ: Ganzzahl

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die MaximumRetryAttempts Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

ProvisionedPollerConfig

Konfiguration zur Erhöhung der Anzahl von Pollern, die zur Berechnung von Ereignisquellenzuordnungen verwendet werden. Diese Konfiguration ermöglicht mindestens einen Poller und ein Maximum von 2000 Pollern. Ein Beispiel finden Sie unter ProvisionedPollerConfig Beispiel

Typ: ProvisionedPollerConfig

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die ProvisionedPollerConfig Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

SchemaRegistryConfig

Konfiguration für die Verwendung einer Schemaregistrierung mit der selbstverwalteten Kafka-Ereignisquelle.

Anmerkung

Diese Funktion muss konfiguriert ProvisionedPollerConfig werden.

Typ: SchemaRegistryConfig

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die SelfManagedKafkaEventSourceConfig Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

SourceAccessConfigurations

Ein Array des Authentifizierungsprotokolls, der VPC-Komponenten oder des virtuellen Hosts zum Sichern und Definieren Ihrer Ereignisquelle.

Gültige Werte: BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE

Typ: Liste von SourceAccessConfiguration

Erforderlich: Ja

CloudFormation Kompatibilität: Diese Eigenschaft ist Teil der SelfManagedKafkaEventSourceConfigEigenschaft einer AWS::Lambda::EventSourceMapping Ressource.

StartingPosition

Die Position im Stream, an der mit dem Lesen begonnen wird.

  • AT_TIMESTAMP— Geben Sie einen Zeitpunkt an, ab dem mit dem Lesen von Datensätzen begonnen werden soll.

  • LATEST— Nur neue Datensätze lesen.

  • TRIM_HORIZON— Verarbeitet alle verfügbaren Datensätze.

Zulässige Werte: AT_TIMESTAMP | LATEST | TRIM_HORIZON

Typ: Zeichenfolge

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die StartingPosition Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

StartingPositionTimestamp

Die Zeit, ab der mit dem Lesen begonnen werden soll, in Unix-Zeitsekunden. DefiniertStartingPositionTimestamp, wann als angegeben StartingPosition istAT_TIMESTAMP.

Type: Double

Required: No

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die StartingPositionTimestamp Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

Topics

Der Name des Kafka-Themas.

Typ: Liste

Erforderlich: Ja

CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die Topics Eigenschaft einer AWS::Lambda::EventSourceMapping Ressource übergeben.

Beispiele

Schließen Sie das Setup mit IAM-Rollen ab

Das folgende Beispiel zeigt ein vollständiges Setup einschließlich der erforderlichen IAM-Rollenkonfiguration für die Verwendung von 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 Beispiel

ProvisionedPollerConfig: MinimumPollers: 1 MaximumPollers: 200

Selbstverwaltete Kafka-Eventquelle

Im Folgenden finden Sie ein Beispiel für einen SelfManagedKafka Ereignisquellentyp.

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

Selbstverwaltete Kafka-Ereignisquelle mit AWS Glue Schemaregistrierung

Im Folgenden finden Sie ein Beispiel für einen mit AWS Glue Schema Registry konfigurierten SelfManagedKafka Ereignisquellentyp.

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

Selbstverwaltete Kafka-Ereignisquelle mit Confluent Schema Registry

Im Folgenden finden Sie ein Beispiel für einen SelfManagedKafka Ereignisquellentyp, der mit Confluent Schema Registry konfiguriert wurde.

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