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

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

Minimum: 1

Maximum: 10000

ConsumerGroupId

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

Typ: Zeichenfolge

Required: No

AWS 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

AWS 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

AWS 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

AWS 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

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

KmsKeyArn

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

Typ: Zeichenfolge

Required: No

AWS CloudFormation Kompatibilität: Diese Eigenschaft wird direkt an die KmsKeyArn 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 20 Pollern. Ein Beispiel finden Sie unter ProvisionedPollerConfig Beispiel

Typ: ProvisionedPollerConfig

Required: No

AWS 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

AWS 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

AWS 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

AWS 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

AWS 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

AWS 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: 20

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