Отправка данных в поток в AWS SDK
Статья создана
Обновлена 28 декабря 2023 г.
Примечание
Вы можете создать триггер, который будет запускать функцию Cloud Functions или контейнер Serverless Containers при отправке данных в поток. Подробнее о триггере для Data Streams.
Python
Для отправки данных в поток данных используется метод put_record/put_records
. При вызове этого метода необходимо указать следующие параметры:
- Имя потока данных, например
example-stream
. - Идентификатор облака, в котором находится поток, например
b1gi1kuj2dht********
. - Идентификатор базы данных YDB с потоком, например
cc8028jgtuab********
. - Отправляемые данные, например
message
.
Вам также потребуется настроить AWS SDK и назначить сервисному аккаунту роль yds.writer
.
Чтобы отправить данные в поток с параметрами, указанными выше:
-
Создайте файл
stream_put_record.py
и скопируйте в него следующий код:import boto3 from pprint import pprint def put_record(cloud, database, stream_name, message): client = boto3.client('kinesis', endpoint_url="https://yds.serverless.yandexcloud.net") response = client.put_record( StreamName="/ru-central1/{cloud}/{database}/{stream}".format(cloud=cloud, database=database, stream=stream_name), Data=message, PartitionKey=message ) return response if __name__ == '__main__': put_record_response = put_record( cloud="b1gi1kuj2dht********", database="cc8028jgtuab********", stream_name="example-stream", message="message") print("The record has been sent successfully") pprint(put_record_response)
-
Запустите программу:
python3 stream_put_record.py
Результат:
The record has been sent successfully { 'EncryptionType': 'NONE', 'ResponseMetadata': { 'HTTPHeaders': { 'connection': 'keep-alive', 'content-length': '81', 'content-type': 'application/json', 'date': '' 'GMT', 'server': 'nginx/1.19.5' }, 'HTTPStatusCode': 200, 'RetryAttempts': 0 }, 'SequenceNumber': '0', 'ShardId': 'shard-000000' }