ResourceNotFoundException при добавлении данных в поток Kinesis Firehose с использованием Lambda - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь добавить данные в поток доставки Kinesis Firehose, используя putrecord с python3.6 на aws lambda. При вызове поставить запись в поток я получаю следующее исключение.

Произошла ошибка (ResourceNotFoundException) при вызове операции PutRecord: поток MyStream под учетной записью 123456 не найден.

Я выполняю следующий код Python для добавления данных в Stream.

import boto3
import json

def lambda_handler(event, context):
    session = boto3.Session(aws_access_key_id=key_id, aws_secret_access_key=access_key)
    kinesis_client = session.client('kinesis', region_name='ap-south-1')
    records = event['Records']
    write_records = list()
    count = 0
    for record in records:
        count += 1
        if str(record['eventName']).lower() == 'insert':
            rec = record['dynamodb']['Keys']
            rec.update(record['dynamodb']['NewImage'])
            new_record = dict()
            new_record['Data'] = json.dumps(rec).encode()
            new_record['PartitionKey'] = 'PartitionKey'+str(count)
            # Following Line throws Exception
            kinesis_client.put_record(StreamName="MyStream", Data=new_record['Data'], PartitionKey='PartitionKey'+str(count))

        elif str(record['eventName']).lower() == 'modify':
            pass
    write_records = json.dumps(write_records)

    print(stream_data)

Статус MyStream активен, а источником данных потока установлено значение Direct PUT and other sources

1 Ответ

0 голосов
/ 07 марта 2019

Если вы уверены, что имя потока указано правильно, вы можете создать клиент с региональной конечной точкой Kinesis

kinesis_client = session.client('kinesis', region_name='ap-south-1', endpoint_url='https://kinesis.ap-south-1.amazonaws.com/')

Список конечных точек службы AWS https://docs.aws.amazon.com/general/latest/gr/rande.html

Надеюсь, это поможет !!!

...