Вы совершенно правы, если хотите создать профессиональное решение с потоковым освещением, запущенное на AWS.

Обзор частей руководства:
- введение в это руководство (часть 0)
- использование файла в Streamlit, сохраненного в AWS, и загрузка нового (часть 1 )
- сделать докер-контейнер и загрузить его в AWS ECS (часть 2)
- запустить этот контейнер как сервис фаргейта (часть 3)
- подключение сервиса к вашей зоне хостинга Route53 (часть 4)
- интеграция аутентификации с Cognito (часть 5)
- бонусный сеанс: использование кнопка загрузки в Streamlit для сохранения файлов на AWS S3 — после 100 хлопков
— бонусная сессия: интегрировать пророка в Streamlit и разместить его — после 200 хлопков

- интеграция аутентификации с Cognito (часть 5) — не опубликовано
— бонус-сессия: использование кнопки загрузки Streamlit для сохранения файлов на AWS S3 — после 100 хлопков
— бонус-сессия: интегрировать пророка в Streamlit и разместить — после 200 хлопков

Что мы хотим здесь сделать?

Как показано на рисунке, мы хотим подключить потоковое приложение к корзине AWS S3, чтобы использовать эту корзину для сохранения файлов. Большим преимуществом здесь является то, что файлы можно обменивать независимо от приложения Streamlit.

Отправная точка

Начнем с небольшого приложения с потоковой подсветкой. Загрузка csv-файла курса акций Apple, показ заголовка и построение графика — ничего особенного

Создание корзины на S3 для сохранения файла

Теперь я хочу изменить CSV-файл с локального сохранения на хранилище AWS S3. Итак, перейдите на aws.amazon.com и создайте пользователя, если у вас его еще нет. Затем перейдите на S3, набрав S3 в строке поиска.

Затем нажмите «Ведра» и «Создать ведро».

Выбрал индивидуальное имя корзины — все остальное должно быть в порядке. Неудивительно, почему мой регион AWS — Франкурт, ведь я сижу в Германии. После названия ведра нажмите внизу «Создать ведро».

Теперь вы создаете приватную корзину, и все, что вы там храните, не является общедоступным.

Нажав на корзину и кнопку загрузки, вы можете легко загрузить файл или папку в корзину. Я загружаю сюда свой файл AAPL.csv, но он является закрытым, поэтому поток не может получить доступ к файлу в данный момент.

Сделать файл доступным для Streamlit

Для этого шага мы должны перейти в AWS на управление идентификацией и доступом (IAM).

В IAM мы хотим создать нового пользователя с правами доступа к S3. Далее я покажу вам возможный способ — тем не менее, если у вас есть разные клиенты и пользователи в вашей учетной записи, вы можете создавать группы пользователей и т. д.
Итак, нажмите «Добавить пользователей», чтобы создать новую.

Вставьте имя вашего пользователя, отметьте «Ключ доступа» и нажмите «Далее: Полномочия».

В политиках нажмите «Прикрепить существующие политики напрямую», введите «s3» в поле поиска и установите флажок «S3 FullAcess». После этого дважды нажмите «Далее» для «Теги/просмотр» (изменения не требуются) и, наконец, «Создать пользователя».

На следующем экране AWS покажет вам ключ доступа и секретный ключ пользователя — сохраните его сейчас! Вы не сможете просмотреть его позже, вам придется создать новый, если вы его забудете!

Измените код Streamlit для использования CSV в корзине

Большая часть работы сделана на данный момент. Теперь нам нужно изменить код с помощью функции, которая создает предварительно подписанный URL-адрес с вашими учетными данными.

Так что измените код и перезапустите приложение Streamlit и… Ошибка 403…
Пожалуйста, дайте AWS несколько часов времени, чтобы новое ведро заработало, извините за это. После этого он будет работать нормально

Сохранение файла в корзине S3

Взять файл из корзины S3 в качестве входных данных — это одно. Но мы хотим изменить этот фрейм данных или создать новый и сохранить его в корзину. Вот, например, я хочу, чтобы данные за последние 30 дней были сохранены в виде файла. Итак, нам нужна новая функция для загрузки файла

После перезапуска приложения Streamlit все работает нормально, и мы находим новый файл в корзине.

Чего мы достигли?

Теперь мы понимаем, как мы можем использовать S3 для хранения файлов и сохранения новых в потоковом приложении. Это очень полезно, потому что теперь вы изменяете/обновляете входные файлы, не имея доступа к приложению Streamlit — вы увидите позже, когда мы загрузим Streamlit как веб-сервис, что это дает вам много возможностей!

Что дальше?

Продолжайте учиться во второй части, чтобы перенести ваше потоковое приложение в док-контейнер и загрузить его в AWS.

Обзор частей руководства:
- введение в это руководство (часть 0)
- использование файла в Streamlit, сохраненного в AWS, и загрузка нового (часть 1 )
- сделать докер-контейнер и загрузить его в AWS ECS (часть 2)
- запустить этот контейнер как сервис фаргейта (часть 3)
- подключение сервиса к вашей зоне хостинга Route53 (часть 4)
- интеграция аутентификации с Cognito (часть 5)
- бонусный сеанс: использование кнопка загрузки в Streamlit для сохранения файлов на AWS S3 — после 100 хлопков
— бонусная сессия: интегрировать пророка в Streamlit и разместить его — после 200 хлопков