###目覚ましが鳴らなくて会社に遅刻、、、なんて経験ありませんか?
私も先日、起床したら11時… 派手に遅刻し、上司から
###「再発防止を考えるように!」
とお叱りを受けました。
というわけで、
###バーチャル彼女モーニングコールを設計します
AWS Cloudwatch Event, Lambdaに加え、
コールセンター革命とも呼ばれたクラウド電話サービス「Amazon Connect」を使用し、
完全なるサーバーレスで設計します。
【要件】
・平日の朝7時にAmazon Connectのコールフローが発動し、
自分のスマホの電話番号に発信して女性の声でコールスクリプトが読み上げられること
##コールフローを作成する
AWS公式のAmazon Connectハンズオンスライド資料の15〜70を参照し、
インスタンス、およびコールフローを作成する。(約15分)
https://www.slideshare.net/AmazonWebServicesJapan/amazon-connect-85894458
「プロンプトの再生」でテキスト読み上げにし、
適当に言ってほしいことを入力する。
問い合わせフローエディタにある
コンタクトIDとコールフローIDは後で使うので控えておくこと。
##Lambdaを作成する
Node.js 8.10でLambda関数を作成する。
以下を自分の環境に置き換える
- ContactFlowId
- InstanceId
- SourcePhoneNumber (Amazon Connectから発行された発信用番号)
exports.handler = async (event) => {
// import entire SDK
var AWS = require('aws-sdk');
var connect;
// create amazon connect object
connect = new AWS.Connect({apiVersion: '2017-08-08', region:"ap-southeast-2"});
// create API request parameter
var params = {
ContactFlowId: "*************************",
DestinationPhoneNumber: process.env.PHONENUMBER,
InstanceId: "***************************",
SourcePhoneNumber: "+81**********"
};
// call API with parameter
console.log("start!");
var calling = connect.startOutboundVoiceContact(params, function(err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
return calling;
};
Lambdaの実行権限に
AmazonConnectFullAccess
を付与すること。
##Cloud Watch Eventを作成する
時刻はUTC基準なので気をつける。
UTC + 9時間 = JST
Cron式を設定し、作成したLambda関数名を指定する。
0 22 ? * MON-FRI *
##おわりに
・Amazon Connectの音声設定をTakumiさんにすればバーチャル彼氏にも対応可能
・「プロンプトの再生」ではwavファイル再生可能。現実の彼女の声を録音すればバーチャルから脱出できる
・コールフローの途中でLambda関数も呼び出せるので、簡単な計算式をプッシュ通知で解かせる事も可能
遅刻は根性論ではなく、仕組みで防げる。
しかし、今回、そもそも早く寝た方が良いという結論に至った。
ありがとうございました。
少しでもお役にたちましたら「いいね」をよろしくお願いします。