こんにちは、AWSエンジニアの大石です。
みなさん、新しいiPhoneは買いましたでしょうか?
良く訓練されたApple信者である私は迷うこと無くiPhone XS Maxにしてみましたが、さすがにデカすぎ感が否めません。しかもiPhone Xからの買い換えだったので「何がかわったんだ」という問いに未だにこたえられずにいます。信者です。
そんな新しいiPhoneですが、どちらがというとハードよりもiOS12というソフトの満足度が高そうです。比較的古いiPhoneでも「OSのアップデートでサクサク動くようになったので、もう少し今の機種で使えそうだ」という話もきいたりしました。
くだんのiOS12、わたしのイチオシ機能が「ショートカット」です。
もともとはWorkflowという名前の有料アプリだったのですが、Appleに買収され、iOS12から標準機能になったというアプリです。
Workflowの時代から、iPhoneで行ういろいろな操作を自動化することた神アプリだったのですが、iOSに統合されたことでSiriからも呼び出せるようになりました。
この「ショートカット」、HTTPリクエストを送信したりすることもできますので、Webhookを受け付けられる様々なクラウドサービス(例えばIFTTTなど)と連携することも可能です。Cloud AutomatorにもWebhookを受け付ける「HTTPトリガー」という機能がありますので、これを使えばSiriからAWSのインスタンスを立ち上げるなんてことも可能です。
早速やってみましょう。
Cloud AutomatorとSiriを連携させる方法
- まずCloud Automatorにログインします(アカウントがない方は無料トライアルも可能です)
- 「ジョブの追加」をクリックします
- トリガーとしてHTTPトリガーを選びます
- アクションは何でもよいのですが、今回はわかりやすく「インスタンスの起動」を選びます
- 必要な情報を入れたら「作成する」ボタンをクリックします
- すると、完了画面がでてきて「URL」と「アクセストークン」が表示されます。ショートカットのレシピ作成時に必要になりますので、記録しておきます
- 次にiPhoneから「ショートカット」アプリを開きます
- ギャラリーから「+」をクリックして、レシピの作成画面に入ります
- 検索ボックスに「URL」と入力して、
- URLを画面上までドラッグ&ドロップして
- 先ほどのCloud Automatorジョブ作成後に表示された「URL」を入力します
- 同様に検索ボックスに「URL」と入力して、「URLの内容を取得」をドラッグ&ドロップします
- 「方法」(多分「メソッド」をよく知らない人が和訳したものと思われますw)は「POST」に、ヘッダに「Authorization」と自分で入力して、その右に値としてアクセストークンの値を入力します(アクセストークンには"CAAuth "という7文字が含まれます)。同様に「Content-Length」「0」を追加します
- レシピが作成できたら、こちらのボタンをクリックして
- このレシピに名前をつけて「Siriに追加」をクリックします
- このような録音画面がでてきますので、録音ボタンを押して自分でこのレシピを起動するフレーズを吹き込みます(ここでは「CAでインスタンスを起動して」と入れてみました
- このようになれば完成です!
ためしてみる
実際に動かしてみましょう。「ヘイ!シリ!」でSiriを起動して「CAでインスタンスを起動して」と呼びかけてみると・・・
おお!Siriさんが「わかりました」といってCloud Automatorを呼び出してくれたようです。
CAでジョブの一覧から「ログ」をクリックしてみると
おお、確かに起動していますね!
今回はSiriから起動してみましたが、Launch Center ProというiPhoneアプリと組み合わせると「ロケーション情報で起動する」なんてことも可能です。Launch Center Proでは「特定の場所を離れた時に、ショートカットのレシピを起動する」ということができますので、例えば「会社を離れたら、開発環境のEC2インスタンスを停止する」などというレシピを起動させて、EC2インスタンスのコストを削減したりすることも可能です。
いかがでしたでしょうか?当社ではKokexaという謎テクノロジーに投資を継続しており、会議室から夜な夜な「コケクサ・・・コケクサ・・・」というつぶやき声が聞こえるために「夜会社にいてはいけない」という都市伝説が生まれつつありますが、SiriとCloud Automatorの組み合わせによってKokexaに一矢報いることができそうです。
敬虔なApple信者の方はぜひお試し下さい!