Причина, по которой я спрашиваю об этом, потому что я не вижу никаких официальных документов, в которых упоминается выполнение PutRecord из AWS лямбда-функции в FireHose. Я хочу выполнить PutRecord из AWS лямбды на Kinesis FireHose. Я также дал соответствующую политику PutRecord для AWS лямбда-функции, из которой я пытаюсь выполнить PutRecord. Я получаю следующую ошибку при выполнении действия PutRecord из AWS Lambda с использованием. Net 2.2
Пользователь: arn: aws: sts :: accountnumber: предполагаемая роль / роль слушателя / лямбда не авторизован для выполнения: kinesis: PutRecord на ресурсе: arn: aws: kinesis: us-west-1: номер счета: предполагается: stream / firehose-stream
У меня есть политика как следует
{
"permissionsBoundary": {},
"roleName": "listener-role",
"policies": [
{
"document": {
"Version": "2012-10-17",
"Statement": [
{....},
{
"Effect": "Allow",
"Action": [
"firehose:PutRecord",
"firehose:PutRecordBatch"
],
"Resource": [
"*"
]
}
]
},
"name": "policy",
"type": "inline"
}
],
"trustedEntities": [
"lambda.amazonaws.com"
]
}
. Net Для установки записи на Kinesis FireHose
_kinesisClient - AmazonKinesisClient
MemoryStream recordStream = new MemoryStream();
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(recordStream, data);
var request = new PutRecordRequest
{
PartitionKey = Guid.NewGuid().ToString(),
Data = recordStream,
StreamName = Environment.GetEnvironmentVariable("KinesisStream")
};
await _kinesisClient.PutRecordAsync(request);