текст перекладу
Нещодавно я вирушив у захоплюючу подорож із створення погодного OpenAPI магазину в S3 бакеті. Ось детальний опис мого досвіду, включаючи кроки, яких я дотримувався, проблеми, з якими зіткнувся, і цінні уроки, які я отримав.
Крок 1: Налаштування проєкту
Я почав з створення каталогу проєкту під назвою weather-dashboard-demo
за допомогою команди: mkdir weather-dashboard-demo
Всередині цього каталогу я створив три підкаталоги:
src
(для вихідного коду)tests
(для юніт-тестів)data
(для зберігання файлів даних)
Оскільки я використовував PowerShell, команда touch
не працювала. Замість цього я використав команду New-Item
, щоб створити необхідні файли:
New-Item -Path src/init.py -ItemType File
New-Item -Path src/weather_dashboard.py -ItemType File
New-Item -Path requirements.txt, README.md, .env -ItemType File
Крок 2: Встановлення Python та налаштування середовища
Спочатку я зіткнувся з помилками, оскільки Python не був встановлений або доданий у PATH.
i)Щоб вирішити цю проблему, я встановив Python і перевірив установку за допомогою:
python — version
ii)Також я перевірив, чи встановлений pip
, використовуючи команду:
python -m pip — version
iii)Якщо pip
не був встановлений, я використав:
python -m ensurepip — upgrade
iv)Далі я ініціалізував репозиторій Git і створив файл .gitignore
, щоб виключити чутливі файли, такі як .env,zip
Крок 3: Встановлення залежностей
i)Я додав необхідні залежності до файлу requirements.txt
:
boto3==1.26.137
python-dotenv==1.0.0
requests==2.28.2
ii)Далі я встановив всі залежності за допомогою:
pip install -r requirements.txt
iii)Щоб перевірити встановлення, я виконав:
pip show python-dotenv
pip show requests
Крок 4: Налаштування AWS та OpenWeather API
i) Використовуючи AWS CLI, я налаштував свої облікові дані:
aws configure
ii)Я надав наступні деталі:
- Access Key ID
- Secret Access Key
- Default Region (наприклад,
us-east-1
)
Далі я зареєструвався на OpenWeather і отримав свій API-ключ. Я зберіг чутливу інформацію у файлі .env
:
OPENWEATHERAPIKEY=yourapikey
AWSBUCKETNAME=yourbucketname
(Примітка: не діліться своїми API-ключами або AWS обліковими даними з іншими особами.)
Крок 5: Написання коду для Weather Dashboard
Я написав логіку для отримання погодних даних та завантаження їх у S3 бакет у файлі weather_dashboard.py
. Повний код можна знайти в моєму GitHub репозиторії.
Щоб виконати скрипт, я використав:
python src/weather_dashboard.py
Усунення помилок
Незважаючи на те, що API працювало добре в Postman, а S3 бакет було успішно створено, я зіткнувся з проблемою, коли API-ключ не зчитувався з файлу .env
. Після перевірки структури файлу я зрозумів, що проблема була викликана відсутністю нового рядка в кінці файлу .env
. Додавши один розрив рядка, я вирішив проблему.
Один з моїх колег по команді роз’яснив мої сумніви щодо команд AWS S3 та поділився кількома надзвичайно корисними порадами. Він пояснив, як:
- Переглядати вміст бакету за допомогою команди:
aws s3 ls s3://bucketname/
- Копіювати об’єкти з бакету, і
2.
текст перекладу
Видалити бакет за допомогою командиrb
.
Я щиро вдячний за його допомогу та підтримку!
Уроки, які я отримав
Увага до деталей: Маленькі помилки, як відсутній новий рядок, можуть спричинити серйозні проблеми.
Знайомство з інструментами: Важливо розуміти команди та інструменти, якими ви користуєтесь, особливо при переході між середовищами (наприклад, PowerShell і Bash).
Документація: Ведення обліку помилок і їхніх рішень допомагає уникнути повторення одних і тих самих помилок.
Практики безпеки: Завжди приховуйте чутливу інформацію, таку як API-ключі та облікові дані.
Кожна помилка, з якою я зіткнувся, навчила мене чомусь важливому, підкріплюючи ідею, що помилки — це кроки на шляху до розвитку. Цей досвід не тільки покращив мої технічні навички, але й дав мені глибше розуміння тонкощів DevOps-робочих процесів.
Перекладено з: Building a Weather OpenAPI Store in S3 Bucket