기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SelfManagedKafka
SelfManagedKafka
이벤트 소스 유형을 설명하는 객체. 자세한 내용은 AWS Lambda 개발자 안내서의 자체 관리형 Apache Kafka AWS Lambda 에서 사용을 참조하세요.
AWS Serverless Application Model (AWS SAM)는이 이벤트 유형이 설정되면 AWS::Lambda::EventSourceMapping 리소스를 생성합니다.
스키마 레지스트리를 사용하려면 함수에 대한 특정 IAM 역할 권한을 정의해야 합니다. 필수 구성의 예는 IAM 역할로 설정 완료를 참조하세요.
구문
AWS SAM 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.
YAML
BatchSize:
Integer
ConsumerGroupId:String
DestinationConfig:DestinationConfig
Enabled:Boolean
FilterCriteria:FilterCriteria
KafkaBootstrapServers:List
KmsKeyArn:String
ProvisionedPollerConfig:ProvisionedPollerConfig
SchemaRegistryConfig:SchemaRegistryConfig
SourceAccessConfigurations:SourceAccessConfigurations
StartingPosition:String
StartingPositionTimestamp:Double
Topics:List
속성
-
BatchSize
-
Lambda가 귀하의 스트림으로부터 풀링하여 귀하의 함수로 보내는 각 배치의 최대 기록 수.
유형: 정수
필수 항목 여부: 아니요
기본값: 100
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의BatchSize
속성으로 직접 전달됩니다.최소:
1
최대:
10000
-
ConsumerGroupId
-
Kafka 주제에서 이벤트를 읽는 방법을 구성하는 문자열입니다.
유형: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의SelfManagedKafkaConfiguration
속성으로 직접 전달됩니다. -
DestinationConfig
-
Lambda가 이벤트를 처리한 후 이벤트의 대상을 지정하는 구성 객체입니다.
이 속성을 사용하여 자체 관리형 Kafka 이벤트 소스에서 실패한 간접 호출의 대상을 지정합니다.
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의DestinationConfig
속성으로 직접 전달됩니다. -
Enabled
-
이벤트 소스 매핑을 비활성화하여 폴링 및 간접 호출을 일시 중지합니다.
유형: 부울
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의Enabled
속성으로 직접 전달됩니다. -
FilterCriteria
-
Lambda가 이벤트를 처리해야 하는지 결정하는 기준을 정의하는 객체입니다. 자세한 내용은 AWS Lambda 개발자 가이드의 AWS Lambda 이벤트 필터링을 참조하세요.
유형: FilterCriteria
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의FilterCriteria
속성으로 직접 전달됩니다. -
KafkaBootstrapServers
-
귀하의 Kafka 브로커의 부트스트랩 서버 목록. 포트를 포함시킵니다(예:
broker.example.com:
)xxxx
유형: 목록
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은에 고유 AWS SAM 하며 AWS CloudFormation 동등한 속성이 없습니다.
-
KmsKeyArn
-
이 이벤트와 관련된 정보를 암호화하는 키의 Amazon 리소스 이름(ARN)입니다.
유형: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의KmsKeyArn
속성으로 직접 전달됩니다. -
ProvisionedPollerConfig
-
이벤트 소스 매핑을 계산하는 데 사용되는 폴러의 양을 늘리는 구성입니다. 이 구성은 최소 1개의 폴러와 최대 20개의 폴러를 허용합니다. 예제는 단원을 참조하십시오. ProvisionedPollerConfig 예제
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의ProvisionedPollerConfig
속성으로 직접 전달됩니다. SchemaRegistryConfig
-
자체 관리형 Kafka 이벤트 소스와 함께 스키마 레지스트리를 사용하기 위한 구성입니다.
참고
이 기능을 구성
ProvisionedPollerConfig
해야 합니다.유형: SchemaRegistryConfig
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의SelfManagedKafkaEventSourceConfig
속성으로 직접 전달됩니다. -
SourceAccessConfigurations
-
이벤트 소스를 보호하기 위한 일련의 인증 프로토콜 또는 VPC 구성 요소입니다.
유효한 값:
BASIC_AUTH | CLIENT_CERTIFICATE_TLS_AUTH | SASL_SCRAM_256_AUTH | SASL_SCRAM_512_AUTH | SERVER_ROOT_CA_CERTIFICATE
유형: SourceAccessConfiguration 목록
필수 항목 여부: 예
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의 SelfManagedKafkaEventSourceConfig 속성의 일부입니다. -
StartingPosition
-
읽기를 시작하는 스트림 내의 위치입니다.
-
AT_TIMESTAMP
- 기록 읽기를 시작할 시간을 지정합니다. -
LATEST
– 새 기록만 읽습니다. -
TRIM_HORIZON
– 사용 가능한 모든 기록을 처리합니다.
유효한 값:
AT_TIMESTAMP
|LATEST
|TRIM_HORIZON
유형: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의StartingPosition
속성으로 직접 전달됩니다. -
-
StartingPositionTimestamp
-
읽기를 시작하는 시간(유닉스 시간 초 단위)입니다.
StartingPositionTimestamp
언제StartingPosition
를AT_TIMESTAMP
으로 지정할지 정의합니다.유형: Double
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의StartingPositionTimestamp
속성으로 직접 전달됩니다. -
Topics
-
Kafka 주제의 이름입니다.
유형: 목록
필수 항목 여부: 예
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의Topics
속성으로 직접 전달됩니다.
예시
IAM 역할로 설정 완료
다음 예제에서는 스키마 레지스트리를 사용하는 데 필요한 IAM 역할 구성을 포함한 전체 설정을 보여줍니다.
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 예제
ProvisionedPollerConfig: MinimumPollers: 1 MaximumPollers: 20
자체 관리형 Kafka 이벤트 소스
다음은 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
AWS Glue 스키마 레지스트리를 사용하는 자체 관리형 Kafka 이벤트 소스
다음은 AWS Glue Schema Registry로 구성된 SelfManagedKafka
이벤트 소스 유형의 예입니다.
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
Confluent 스키마 레지스트리를 사용한 자체 관리형 Kafka 이벤트 소스
다음은 Confluent 스키마 레지스트리로 구성된 SelfManagedKafka
이벤트 소스 유형의 예입니다.
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