目次
はじめに
こんにちは!株式会社ギークフィードのエンジニアのダマルです。
この記事は、Amazon Connect Advent Calendar 2022の7日目の記事となります。
ギークフィードとクラスメソッドさんの有志が著者となっているアドベントカレンダーです。
ゴール
Amazon Connectの営業時間設定で休日休みの設定がないために、今回はAWS Lambdaで休日休みを営業時間外に設定を試してみました。環境変数を利用して、データーベースは必要ないパターンでご紹介したいと思います。
前提条件
- Amazon Connectインスタンス
- 取得した電話番号
- AWS Lambda作成できるロール
利用するサービス
- Amazon Connect
- AWS Lambda
実際にやってみた
AWS Lambda作成
まずはAWS LambdaでAmazon Connectのインスタンスの同じリジョンに設定して、「関数の作成」ボタンでAWS Lambda関数作りましょう。
ここは「一から作成」のオプションを選んで、関数名を決めてください。ランタイムで最新のNode.jsで設定して、「関数の作成」で関数を作成して公開しておきます。
ソースコード
以下で表示されているNode.jsのソースコードを「コード」に入力して、「Deploy」ボタンを押して、関数を作成しました。以下のソースコードは現在の日付をJavascriptのDateオブジェクトで返します。現在の日付は祝日休みの環境変数のarrayの中にあったらisOpen関数はFalseになります。
JavascriptのDateオブジェクト: リンク
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
const TIME_ZONE = "Asia/Tokyo"; exports.handler = async function isOpen(event, context) { try { let currentDate = new Date().toLocaleString({timezone: TIME_ZONE}); currentDate = new Date(currentDate); // console.log("currentDate:", currentDate); let holidays = JSON.parse(process.env[`HOLIDAYS`]); // console.log("holidays:", holidays); let filteredHolidays = holidays.filter((h) => { let holiday = new Date(h); return holiday.getDate() == currentDate.getDate() && holiday.getMonth() == currentDate.getMonth() && holiday.getFullYear() == currentDate.getFullYear(); }); // console.log("filteredHolidays:", filteredHolidays); return {status: filteredHolidays.length === 0? "true":"false"}; } catch (e) { console.log("Error while checking:", e); return {status: "false"}; } } |
AWS Lambda環境変数作成
作ったLambda関数に「設定」のサブメニューに「環境変数」に新しい環境変数を「編集」ボタンで作成します。
「環境変数の編集」メニューに「環境変数の追加」ボタンで新しい環境変数を作ります。
以下の環境変数に2024のお正月までの祝日休みを追加します。
キー | 値 |
HOLIDAYS |
["2022-01-01", "2022-01-10","2022-02-11","2022-02-23","2022-03-21","2022-04-29","2022-05-03", "2022-05-04", "2022-05-05", "2022-07-18", "2022-08-11", "2022-09-19", "2022-09-23", "2022-10-10", "2022-11-03", "2022-11-23", "2023-01-01", "2023-01-02", "2023-01-09", "2023-02-11", "2023-02-23", "2023-03-21", "2023-04-29", "2023-05-03", "2023-05-04", "2023-05-05", "2023-07-17", "2023-08-11", "2023-09-18", "2023-09-23", "2023-10-09", "2023-11-03", "2023-11-23","2024-01-01"] |
Amazon Connect問い合わせフローにLambdaを追加
Amazon Connect インスタンスで「統合」のブロックから「AWS Lambda関数を呼び出す」を問い合わせフローに追加します。
「手動で設定」にAWS LambdaのARNキーを入力して、「保存」ボタンを押した、「AWS Lambda関数を呼び出す」を保存しております。
まとめ
AWS Lambdaの環境変数でデーターベース利用しないように日本の祝日休み確認関数を作成してみました。このプロジェクトを実習して、簡単で構築できてすぐ使えるAmazon Connectと色んなことができるAWS Lambdaと連携の力を感じました。
これからもAmazon Connectについて勉強を頑張って進みます。
- AWS Builder Cards:楽しみながらAWSを学ぶカードゲーム - 2024-09-17
- Amazon ConnectのCTRデータをPythonで1600万件作ってみた - 2023-12-20
- re:Invent 2023 5kランに参加しました - 2023-12-12
- Amazon Connect が提供する新しいオムニチャネル機能の概要 (re:Invent 2023) - 2023-12-10
- AmazonConnectとAWSLambdaの環境変数で休日休みを設定を試してみた – Amazon Connect アドベントカレンダー 2022 - 2022-12-07