🤖

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 を利用してみようと考えて、こちらもカスタマイズ。カスタマイズ箇所は以下の通り。

cdk.json
    "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 のサービスアップデートを確認することができるようになりました。
AWS What's New

エラー発生と対応

初手の 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