🖊️
【Power Automate】AWS知識を毎日チャットで学習!問題自動投稿ボットを作ってみた
はじめに
近年、ガバメントクラウド市場において AWS(Amazon Web Services) が圧倒的なシェアを誇っています。特に公共分野の案件では、AWS の利用がますます増加しており、関連スキルを持つ人材への需要は高まる一方です。
このような状況の中、自身のスキルアップは喫緊の課題と言えるでしょう。そこで今回は、日々の学習を支援するツールとして、Power Automate を活用した AWS 問題自動投稿ボットを作成してみました。このボットは、毎日 Teams のチャネルにランダムに AWS 問題を投稿し、一定時間後に回答も自動で投稿してくれる優れものです。
Power Automate とは?
Power Automate は、Microsoft が提供するクラウド型の自動化サービスです。様々なアプリケーションやサービスを連携させ、定型的な業務を自動化することができます。コーディング不要で直感的な操作が可能なので、手軽に自動化フローを作成できます。
ボット作成の流れ
1. Excel ファイルの準備
- 問題、選択肢、回答、解説をまとめた Excel ファイル を作成します。(今回は「AWSCP練習問題.xlsx」を使用)
- このファイルを SharePoint のドキュメントライブラリにアップロードします。
※テーブル形式で保存することを忘れないこと
このような形のファイルを作成2. Power Automate フローの作成
- Power Automate で新しいフローを作成し、トリガーとして「繰り返し」を選択し、毎日決まった時刻に実行されるよう設定します。
- 「Excel Online (Business)」コネクタの「List rows present in a table」アクションを追加し、SharePoint 上の Excel ファイルから問題と回答のデータを取得します。
- 「Initialize variable」アクションで乱数を生成し、取得した行数の中からランダムな行番号を選択します。
- さらに「Initialize variable」アクションを追加し、選択した行の問題と選択肢を整形します。
- 「Teams」コネクタの「Post a message (V3)」アクションを使用し、整形した問題を Teams の指定したチャネルに投稿します。
- 「Delay」アクションで 3 分間処理を待機します。
- 再び「Teams」コネクタの「Post a message (V3)」アクションを使用し、選択した行の回答と解説を同じ Teams チャネルに投稿します。
フロー設定の詳細
1. List rows present in a table
- Location: SharePoint サイトとドキュメントライブラリを選択
- File name: アップロードした Excel ファイル名(例:AWSCP練習問題.xlsx)
- Table: 設定したテーブルを選択
2. Initialize variable (randomIndex)
- Name: randomIndex
- Type: Integer
-
Value:
int(rand(0,sub(length(outputs('List_rows_present_in_a_table')?['body/value']),1)))
3. Initialize variable (formattedQuestion)
- Name: formattedQuestion
- Type: String
-
Value:
concat( '**QuestionID: ', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['QuestionID'], '**', '<br><br><b>', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Question'], '</b>', '<br><br><ul>', '<li>', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Option1'], '</li>', '<li>', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Option2'], '</li>', '<li>', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Option3'], '</li>', '<li>', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Option4'], '</li>', '</ul>' )
4. Initialize variable (formattedAnswer)
- Name: formattedAnswer
- Type: String
-
Value:
concat( '**QuestionID: ', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['QuestionID'], '**', '<br><br><b>答え:</b> <i>', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Answer'], '</i><br><br>', '<b>解説:</b> ', outputs('List_rows_present_in_a_table')?['body/value'][variables('randomIndex')]['Explanation'] )
5. Post a message (V3) (問題)
- Post in: チームとチャネルを選択
-
Message: 変数
formattedQuestion
6. Delay
- 3 分間待機
7. Post a message (V3) (回答)
- Post in: 同じチームとチャネルを選択
-
Message: 変数
formattedAnswer
まとめ
この記事では、Power Automate を使って AWS 問題を自動投稿するボットを作成する方法を紹介しました。日々の学習にぜひご活用ください。
今後の学習に向けて
- Power Automate の他の機能も活用して、さらに高度な自動化フローを作成してみましょう。
- AWS の学習教材を活用し、知識をさらに深めましょう。
- 習得した知識を活かして、AWS を使ったシステム構築に挑戦してみましょう。
この記事が、あなたの AWS 学習の一助となれば幸いです。
免責事項
- 本記事は情報提供のみを目的としており、内容の正確性や完全性を保証するものではありません。
- 本記事の内容に基づいて発生したいかなる損害についても、一切責任を負いません。
- 最新の情報については、AWS 公式サイトをご確認ください。
最後に
この記事が役に立った場合は、ぜひいいねやシェアをお願いします。また、ご質問やご意見などございましたら、お気軽にコメントください。
Discussion