기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
MSK
MSK
이벤트 소스 유형을 설명하는 객체. 자세한 내용은 AWS Lambda 개발자 안내서의 Amazon MSK AWS Lambda 에서 사용을 참조하세요.
AWS Serverless Application Model (AWS SAM)는이 이벤트 유형이 설정되면 AWS::Lambda::EventSourceMapping 리소스를 생성합니다.
스키마 레지스트리를 사용하려면 함수에 대한 특정 IAM 역할 권한을 정의해야 합니다. 필수 구성의 예는 IAM 역할로 설정 완료를 참조하세요.
구문
AWS SAM 템플릿에서이 개체를 선언하려면 다음 구문을 사용합니다.
YAML
ConsumerGroupId:
String
DestinationConfig:DestinationConfig
FilterCriteria:FilterCriteria
KmsKeyArn:String
MaximumBatchingWindowInSeconds:Integer
ProvisionedPollerConfig:ProvisionedPollerConfig
SchemaRegistryConfig:SchemaRegistryConfig
SourceAccessConfigurations:SourceAccessConfigurations
StartingPosition:String
StartingPositionTimestamp:Double
Stream:String
Topics:List
속성
-
ConsumerGroupId
-
Kafka 주제에서 이벤트를 읽는 방법을 구성하는 문자열입니다.
유형: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의AmazonManagedKafkaConfiguration
속성으로 직접 전달됩니다. -
DestinationConfig
-
Lambda가 이벤트를 처리한 후 이벤트의 대상을 지정하는 구성 객체입니다.
이 속성을 사용하여 Amazon MSK 이벤트 소스에서 실패한 간접 호출의 대상을 지정합니다.
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의DestinationConfig
속성으로 직접 전달됩니다. -
FilterCriteria
-
Lambda가 이벤트를 처리해야 하는지 결정하는 기준을 정의하는 객체입니다. 자세한 내용은 AWS Lambda 개발자 가이드의 AWS Lambda 이벤트 필터링을 참조하세요.
유형: FilterCriteria
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의FilterCriteria
속성으로 직접 전달됩니다. -
KmsKeyArn
-
이 이벤트와 관련된 정보를 암호화하는 키의 Amazon 리소스 이름(ARN)입니다.
유형: 문자열
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의KmsKeyArn
속성으로 직접 전달됩니다. -
MaximumBatchingWindowInSeconds
-
함수를 호출하기 전에 기록을 수집할 최대 기간(단위: 초)입니다.
유형: 정수
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의MaximumBatchingWindowInSeconds
속성으로 직접 전달됩니다. -
ProvisionedPollerConfig
-
이벤트 소스 매핑을 계산하는 데 사용되는 폴러의 양을 늘리는 구성입니다. 이 구성은 최소 1개의 폴러와 최대 20개의 폴러를 허용합니다. 예제는 단원을 참조하십시오ProvisionedPollerConfig 예제.
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의ProvisionedPollerConfig
속성으로 직접 전달됩니다. SchemaRegistryConfig
-
Kafka 이벤트 소스와 함께 스키마 레지스트리를 사용하기 위한 구성입니다.
참고
이 기능을 구성
ProvisionedPollerConfig
해야 합니다.유형: SchemaRegistryConfig
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의AmazonManagedKafkaEventSourceConfig
속성으로 직접 전달됩니다. -
SourceAccessConfigurations
-
이벤트 소스를 보호하기 위한 일련의 인증 프로토콜 또는 VPC 구성 요소입니다.
유효한 값:
CLIENT_CERTIFICATE_TLS_AUTH
유형: SourceAccessConfiguration 목록
필수 항목 여부: 아니요
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의 AmazonManagedKafkaEventSourceConfig 속성의 일부입니다. -
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
속성으로 직접 전달됩니다. -
Stream
-
데이터 스트림 혹은 스트림 컨슈머의 Amazon 리소스 이름(ARN).
유형: 문자열
필수 항목 여부: 예
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의EventSourceArn
속성으로 직접 전달됩니다. -
Topics
-
Kafka 주제의 이름입니다.
유형: 목록
필수 항목 여부: 예
AWS CloudFormation 호환성:이 속성은
AWS::Lambda::EventSourceMapping
리소스의Topics
속성으로 직접 전달됩니다.
예시
IAM 역할로 설정 완료
다음 예제에서는 스키마 레지스트리를 사용하는 데 필요한 IAM 역할 구성을 포함한 전체 설정을 보여줍니다.
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 예제
ProvisionedPollerConfig: MinimumPollers: 1 MaximumPollers: 20
기존 클러스터를 위한 Amazon MSK 예제
다음은 이미 AWS 계정에 존재하는 Amazon MSK 클러스터의 MSK
이벤트 소스 유형의 예입니다.
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
동일한 템플릿에 선언된 클러스터에 대한 Amazon MSK 예제
다음은 동일한 템플릿 파일에 선언된 Amazon MSK 클러스터의 MSK
이벤트 소스 유형입니다.
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
스키마 레지스트리가 있는 MSK 이벤트 소스
다음은 스키마 레지스트리로 구성된 MSK
이벤트 소스 유형의 예입니다.
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
Confluent 스키마 레지스트리가 있는 MSK 이벤트 소스
다음은 Confluent 스키마 레지스트리로 구성된 MSK
이벤트 소스 유형의 예입니다.
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