Help us understand the problem. What is going on with this article?

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

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

私も先日、起床したら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関数も呼び出せるので、簡単な計算式をプッシュ通知で解かせる事も可能

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした