LoginSignup
29
17

More than 3 years have passed since last update.

AWSバーチャル彼女から毎朝モーニングコールで起こしてもらう1つのアーキテクト

Last updated at Posted at 2019-02-22

目覚ましが鳴らなくて会社に遅刻、、、なんて経験ありませんか?

私も先日、起床したら11時… 派手に遅刻し、上司から

「再発防止を考えるように!」

 とお叱りを受けました。

というわけで、

バーチャル彼女モーニングコールを設計します

AWS Cloudwatch Event, Lambdaに加え、
コールセンター革命とも呼ばれたクラウド電話サービス「Amazon Connect」を使用し、
完全なるサーバーレスで設計します。
image.png
【要件】
・平日の朝7時にAmazon Connectのコールフローが発動し、
 自分のスマホの電話番号に発信して女性の声でコールスクリプトが読み上げられること

コールフローを作成する

AWS公式のAmazon Connectハンズオンスライド資料の15〜70を参照し、
インスタンス、およびコールフローを作成する。(約15分)
https://www.slideshare.net/AmazonWebServicesJapan/amazon-connect-85894458

「プロンプトの再生」でテキスト読み上げにし、
適当に言ってほしいことを入力する。

image.png
問い合わせフローエディタにある
コンタクトIDとコールフローIDは後で使うので控えておくこと。
image.png

Lambdaを作成する

Node.js 8.10でLambda関数を作成する。

以下を自分の環境に置き換える
 - ContactFlowId
 - InstanceId
 - SourcePhoneNumber (Amazon Connectから発行された発信用番号)

Node.js
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;
};

環境変数に自分のスマホの番号を入力する
image.png

Lambdaの実行権限に
AmazonConnectFullAccess
を付与すること。

Cloud Watch Eventを作成する

時刻はUTC基準なので気をつける。
UTC + 9時間 = JST

Cron式を設定し、作成したLambda関数名を指定する。

0 22 ? * MON-FRI *

(平日の朝7時に起動)
image.png

名前と説明を付けて完成
image.png

おわりに

・Amazon Connectの音声設定をTakumiさんにすればバーチャル彼氏にも対応可能
・「プロンプトの再生」ではwavファイル再生可能。現実の彼女の声を録音すればバーチャルから脱出できる
・コールフローの途中でLambda関数も呼び出せるので、簡単な計算式をプッシュ通知で解かせる事も可能

遅刻は根性論ではなく、仕組みで防げる。
しかし、今回、そもそも早く寝た方が良いという結論に至った。

ありがとうございました。
少しでもお役にたちましたら「いいね」をよろしくお願いします。

29
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
17