正确的Kinesis流主体

问题描述 投票:1回答:1

在将Kinesis流指定为AWS中的主体时应使用什么主体?具体来说,我想在CloudFormation中编写AWS::Lambda::Permission资源:lambda将由Kinesis流触发。从the docs

必须输入主体

这些都不适合我工作:

  • kinesis.amazonaws.com
  • kinesisstream.amazonaws.com
  • kinesisstreams.amazonaws.com
  • kinesis-stream.amazonaws.com

我还没有找到任何文件,可以将服务映射到主体。我发现this page,它表示Kinesis Analytics的主体是kinesisanalytics.amazonaws.com

我看了AWS service namespaces page,但是它没有有关委托人的任何信息。如上所述,流的命名空间似乎只是kinesis,但对我来说不起作用。

amazon-web-services aws-lambda amazon-iam amazon-kinesis
1个回答
0
投票

正确的是kinesisanalytics.amazonaws.com

但是让我假设一旦有新记录放入运动学中,您就想触发lambda,那么您所需要的就是:

  1. 使用以下假定角色策略创建IAM角色:

    { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "Service": "lambda.amazonaws.com" }, "Effect": "Allow" } ] }

  2. 创建IAM角色策略“以附加到在步骤1中创建的角色”:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:{aws_region}:{account_id}:*:*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:DescribeStream", "kinesis:ListStreams" ], "Resource": "arn:aws:kinesis:{aws_region}:{account_id}:stream/{kinesis_stream_name}" }] }

  3. 将IAM角色从步骤1附加到lambda函数

  4. 具有以下属性的lambda事件源映射“添加触发器”:

    batch_size = 100起始位置=“最新”启用=真

© www.soinside.com 2019 - 2024. All rights reserved.