1735307579
2024-12-27 13:05:00
このプロジェクトは、C1 レベルのオランダ語 3 単語、その英語翻訳、例文を含む電子メールの毎日の配信を自動化します。メールは次のようになります。
このプロジェクトを作成したのは、C1 レベルのオランダ語の語彙を構築するのに役立つ適切なアプリが見つからなかったからです。 ChatGPT が適切な単語の提案を提供することを発見し、プロセスを自動化することにしました。さらに、私はアプリよりもメールを定期的にチェックしているため、この方法が学習に効果的であることがわかっています。
このプロジェクトは、私のスキルをリフレッシュする機会にもなりました。 テラフォーム そして パイソン。
CloudWatch イベント ルールは毎朝 7:00 に Lambda をトリガーします。 Lambda は、以前に送信されたすべてのオランダ語の単語を DynamoDB から取得します。次に、ChatGPT から 3 つの新しい単語を取得し、DynamoDB に保存して、SES に送信します。 SES はそれらをエンド ユーザーの電子メールに配信します。
このプロジェクトをデプロイするには、次のツールと構成が適切に配置されていることを確認してください。
-
インストールされているツール:
- Python (Python 3.8 でテスト済み)
- pip (pip 19.2.3 でテスト済み)
- Terraform (Terraform 1.10.3 でテスト済み)
- AWS CLI (2.15.58 でテスト済み)
-
権限:
AWS CLI ユーザーには、リソースをデプロイするための適切なアクセス許可が必要です。 Terraform ファイルを参照して、最小特権の原則を適用します。 -
Amazon SES 認証済みメールアドレス:
Amazon SES で検証済みの E メールアドレスが必要です。この電子メールは、プロジェクトで使用されているものと一致する必要があります。
参照: Amazon SES での E メールアドレスの検証。 -
オプション:
必要に応じて、Lambda デプロイメント パッケージを手動で圧縮できます。- 提供されているものを使用します
setup.shスクリプトを使用するか、スクリプトの手順を手動で実行します (Mac/Linux の場合は多少の変更が必要な場合があります)。 - あるいは、事前に圧縮されたパッケージを使用します。
deployment_package.zip。
- 提供されているものを使用します
-
構成を準備します。
- コピー
terraform.tfvars.exampleにterraform.tfvars。 - に必要な値を入力します。
terraform.tfvars。
- コピー
-
Terraform ワークフローを実行します。
terraform init terraform plan terraform apply
このプロジェクトは、 週末プロジェクト、改善の余地があります。潜在的な機能強化には次のようなものがあります。
- パフォーマンスと堅牢性を向上させるために、Python コードを非同期になるようにリファクタリングします。
- 分割する
lambda_function.pyファイルをより小さなモジュールに分割して、整理と保守性を向上させます。
ただし、プロジェクトはその目的を果たしており、これ以上成長する可能性は低いため、実装はシンプルにしました。
#ThReineckedutch_vocabulary #レベルのオランダ語 #単語その翻訳例を含む自動メールを毎日送信するように #AWS #インフラストラクチャを設定します
