whats-new-summary-notifier を利用して AWS What's New の日本語要約を Slack に通知する
はじめに
AWS のアップデートを確認するための AWS What's New ですが毎日複数件あるため自分から確認しにいくのは中々億劫です。そこで便利なソリューションである "whats-new-summary-notifier" というサンプルアプリケーションを自分の環境にデプロイして Slack に通知させて確認できる環境を作っていきたいと思います。
事前準備
リポジトリを fork
今回少しカスタマイズするため、本家のリポジトリを fork します。
fork 後のリポジトリはこちら。
デプロイするための AWS アカウントを準備
こちらは任意の AWS アカウントで問題ないと思いますが、今回私は専用の AWS アカウントを AWS Organizations にて新規に作成して準備しました。一旦手元の Mac からデプロイを行うため、手元の環境から AWS アカウントにアクセスできるようにするべく、AWS CLI
にて IAM Identity Center 経由でログインできるように設定を行いました。
参考:AWS CLI を使用した IAM アイデンティティセンター認証の設定
カスタマイズ
今回 Slack のフリープランで利用したいため、こちらの記事を参考にカスタマイズを実施。
AWSのアップデートをSlackに通知する"What’s New Summary Notifier"をSlackフリープランのWebhookで受信する
また、リージョンはap-northeast-1
(東京リージョン)、モデルについては Claude 3 Haiku
を利用してみようと考えて、こちらもカスタマイズ。カスタマイズ箇所は以下の通り。
"context": {
- "modelRegion": "us-east-1",
- "modelId": "anthropic.claude-3-sonnet-20240229-v1:0",
+ "modelRegion": "ap-northeast-1",
+ "modelId": "anthropic.claude-3-haiku-20240307-v1:0",
デプロイ
公式のREADMEに従って以下手順でコマンド実行。
まず、このプロジェクトで必要なモジュールをインストール。
npm install
その後、今回新規に作成した AWS アカウントへの初回デプロイのため、以下コマンドで bootstrap を実施。
cdk bootstrap
以下で、CloudFormation を出力。
cdk synth
なお、この際にローカルに Docker 環境が必要なため、必要に応じてインストールをしておく必要があります。
私は Orbstack を利用しています。
最後に以下コマンドでプロジェクトをデプロイします。
cdk deploy
これで、フリープランの Slack 環境で以下のように AWS のサービスアップデートを確認することができるようになりました。
エラー発生と対応
cdk bootstrap
に失敗する
初手の リポジトリを Clone した直後に該当ディレクトリで cdk bootstrap
を実行するもエラーに。
必要なモジュールがなかったために起きていたようで、npm install
で必要モジュールをインストールすることで解決。
Docker 起因のエラー
cdk synth
時に以下のエラーが発生。
ERROR: Cannot connect to the Docker daemon
Docker daemon に接続できないことが問題なので、Orbstack のアプリを起動して再度 cdk synth
を実行して解決。
CDK deploy 時の Service Quota に関するエラー対応
cdk deploy
を実行した際に以下のエラーが発生。
Resource handler returned message: "Specified ReservedConcurrentExecutions for function decreases account's UnreservedConcurrentExecution below its minimum value of [10].
調査したところ、Service Quota の上限に当たっている問題のようなので、マネジメントコンソールの "Service Quota" にて "Concurrent executions" の上限緩和申請を行いました。初期値が "10" だったため、"1000" に引き上げの申請をしています。
申請後、1 時間程度で Quota が緩和されました。サポートケースの内容を確認すると最大 48 時間かかるという記載があったため、状況によって緩和までの時間が変わることが予想されます。
終わりに
今回の環境構築にて AWS What's New を日本語に要約して確認する環境を作ることができました。一点気になるのは、Amazon Bedrock による推論時間の関係で、アップデートが元記事の時系列順に並ばないことです。この点ちょっと改善したいですね。今後検討してみたいと思います。
Discussion