С помощью AWS Lambda и Amazon Kinesis вы можете в реальном времени обрабатывать потоковые данные для отслеживания работы приложения, обработки заказов, анализа посещаемости, очистки данных, создания метрик, фильтрации журналов, индексации, анализа социальных сетей и обработки данных телеметрии устройств IoT. Архитектуру, описанную на этой схеме, можно создать с помощью шаблона AWS CloudFormation.
Шаблон выполняет следующие действия:
-
создает поток Kinesis;
-
создает таблицу DynamoDB с именем <stackname>-EventData;
-
создает функцию Lambda 1 (<stackname>-DDBEventProcessor), которая получает записи из Kinesis и размещает их в таблице DynamoDB;
-
создает роль и политику IAM, чтобы позволить функции Lambda, обрабатывающей события, читать данные из потока Kinesis и записывать их в таблицу DynamoDB;
-
создает пользователя IAM с разрешением для добавления событий в поток Kinesis вместе с данными для доступа, которые будут использоваться в клиенте API.
Шаг 1. Создайте стек AWS CloudFormation с помощью шаблона. Этот шаблон AWS CloudFormation полностью автоматизирует создание, развертывание и настройку всех компонентов приложения.
Шаг 2. После успешного создания стека AWS CloudFormation вы можете открыть вкладку «Outputs» и просмотреть параметры AWS, необходимые для примера клиента Twitter, описанного далее.
Шаг 3. Для запуска примера приложения вам необходимо добавить в код данные AWS и Twitter. Откройте producer/twitter2kinesis.py в текстовом редакторе.
Шаг 4. Для доступа к Twitter API вам потребуются маркеры доступа. Убедитесь, что они у вас есть, и укажите значения для следующих параметров.
Параметры Twitter API
consumer_key = ""
consumer_secret = ""
access_token_key = ""
access_token_secret = ""
Шаг 5. Введите данные для доступа AWS и имя потока Amazon Kinesis. Это сведения с вкладки «Outputs» шаблона CloudFormation, которую вы открывали на шаге 2.
Параметры AWS – это сведения с вкладки «Outputs» шаблона CloudFormation.
access_key = ""
secret_access_key = ""
region = ""
stream_name = ""
Шаг 6. Наконец, перед запуском примера кода необходимо установить Python с модулями boto3 и TwitterAPI. Если у вас нет этих модулей, установите их с помощью pip:
pip install boto3 TwitterAPI
Шаг 1. Запустите Python-приложение producer/twitter2kinesis.py из командной строки, чтобы начать отправлять твиты в поток Kinesis.
python twitter2kinesis.py
Шаг 2. В консоли управления Amazon DynamoDB выберите таблицу <stackname>-EventData и просмотрите записи.
Чтобы удалить все созданные ресурсы, удалите стек AWS CloudFormation.