ヤマムギ

growing hard days.

*

kintoneに登録されたアカウントの電話番号にGoogleカレンダーの予定をAmazon Pollyが読み上げてTwilioから電話でお知らせする(AWS Lambda Python)

      2017/05/07

Google Calendar Twilio Reminder

Googleカレンダーの予定を電話音声でリマインダーします。

  • 対象とするGoolgeアカウントと受電する電話番号はkintoneに登録します。
  • トリガーはAmazon CloudWatchで毎時0分にAWS Lambdaを実行します。
  • Googleカレンダーの予定はAmazon PollyがMP3ファイルを生成してS3に格納します。
  • Googleカレンダーは使用するサービスアカウントに閲覧権限を設定します。

ソースコードはGitHubに置いてます。

各APIの説明はAPIごとにブログ記事に書いてます。
以下をご確認ください。

以下、簡易説明です。

kintoneアプリの作成

以下の項目を持つアプリを作成します。

フィールド名 フィールドコード タイプ 内容
メールアドレ calendar_id 文字列(1行) Googleアカウントのメールアドレス
電話番号 tel_number 文字列(1行) Twilioからかかってくる先の電話番号
無効 invalid チェックボックス 選択項目は「無効」のみ

※「無効」は設定を無効にするための項目です。レコード削除でも同じです。

Googleカレンダー

Google Developers ConsoleでCalendar V3 APIを発行してサービスアカウントを作ります。
認証キーはjson形式にしてソースコードと同じフォルダに配置します。
対象のカレンダーに作ったサービスアカウントに閲覧権限を設定します。

AWS Lambda

ソースコードをダウンロードして、requirements.txtに記載のパッケージをソースコードと同じフォルダにインストールしてzipで固めて、Lambdaにアップロードします。

AWS Lambdaに設定する環境変数

変数名 設定値
TIME_LAG 予定を何時間前に通知するかを設定します
TIME_ZONE Asia/Tokyoなど
BUCKET_NAME Amazon Pollyが生成するMP3ファイルを格納するS3バケット名
BUCKET_REGION ap-northeast-1など S3バケットがあるリージョン名
VOICE_ID Amazon PollyのボイスID 日本語なので Mizuki
POLLY_REGION Amazon Pollyのリージョン名
KINTONE_DOMAIN kintoneのドメイン xxx.cybozu.com
KINTONE_APP kintoneのアプリの数字
KINTONE_HEADERS_KEY X-Cybozu-API-Token
KINTONE_API_KEY kintoneのAPIキー
KINTONE_BASIC_HEADERS_KEY Authorization
KINTONE_BASIC_HEADERS_VALUE kintoneベーシック認証のキー(Basic)で始まる
DOMAIN Googleのドメイン GSuiteは独自ドメイン、フリーアカウントはgmail.com
GOOGLE_SERVICE_ACCOUNT_ID GoogleのサービスアカウントID
TWILIO_ACCOUNT_SID TwilioのアカウントSID
TWILIO_AUTH_TOKEN Twilioのトークン
TWILIO_FROM_NUMBER Twilioの発信元電話番号

最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , , , , , ,

ad

ad

  関連記事

CloudFormation StackSetsでOrganizations組織のアカウントに一気にIAMロールを作成した

Organizationsで管理している各アカウントにIAMロールを作成したい場 …

2017年、このブログ(WordPress(Amazon EC2 + RDS))で対応してきたこと

Amazon Web Services Advent Calendar 2017 …

Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール

久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon …

AWS Transfer Family S3向けのSFTP対応サーバーをVPCで作成してEIPをアタッチ

EIPの作成 同じリージョンでEIPを作成しておきます。 SFTP対応サーバーの …

Amazon EC2のスクリーンショットとは

ドキュメント見てたらAmazon EC2でスクリーンショットって機能があったので …

API Gatewayから直接 DynamoDBに書き込む

やりたいこと WebページでOやXを押したときに、どっちを押したかをDynamo …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

Amzon Linux のApacheでRedmineとWordPressをバーチャルホストで共存する

EC2とRDSを節約しようと思いまして、Redmineを動かしてるとこに検証用W …

ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた

同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …

CloudTrailのログファイルの整合性検証をAWS CLIで実行しました

CloudTrailのログファイルの検証を「有効」にしました。 上記のようなCl …