使用Lambda的AWS firehose记录的转换功能的策略问题

时间:2018-12-27 12:42:46

标签: amazon-web-services aws-lambda

我正在配置使用Lambda的流水流的记录转换。问题在于,当新记录进入firehose时,永远不会调用transform函数。

我对此进行了进一步调试,发现该策略应允许invokeFunction充当firehose角色,并且应允许getRecords用于Lambda的Kinesis流。但是我没有任何Kinesis流。只有没有getRecords操作的firehose流。

我阅读了他们的文档:

但找不到用于配置Lambda策略用作Firehose转换功能的示例。

尽管已对如何配置Firehose进行了详细说明,但Lambda方面并没有太多有关所需IAM策略的信息。

有人用适当的策略成功配置了此吗?


更新:

Firehose流策略可以访问S3存储桶(GetBucketLocation,ListBucket,ListBucketMultipartUploads,GetObject,PutObject)

还有如下所述的Lambda调用权限。

{
  "Sid": "",
  "Effect": "Allow",
  "Action": [
    "lambda:InvokeFunction",
    "lambda:GetFunctionConfiguration"
  ],
  "Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxxxx:function:my_test_function:$LATEST"
}

在Lambda端,在控制台中,我选择了Kinesis选项作为触发器。但是它允许从Kinesis stream下拉列表中仅选择Kinesis流。我正在寻找的是允许记录转换的Firehose流。但是此Firehose流完全没有出现在下拉列表中。

此外, https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html说明了Kinesis触发器所需的权限(kinesis:GetRecords从Kinesis流中读取记录)

但是https://docs.aws.amazon.com/lambda/latest/dg/services-kinesisfirehose.html完全不提供有关Firehose所需权限的任何信息。如果我使用与Kinesis流相同的权限,则Lambda根本不会触发。

0 个答案:

没有答案