オンプレ系インフラエンジニアがAzureを勉強する

いつか誰かの何かの役に立つと嬉しいな

Azure Logic Appsを使ってTwitter Botを作る

■動機

ブログの記事をツイッターで定期的に投稿して宣伝したいと思いました。

 

■目的

Azure Logic Apps機能を使って、
ツイッターに定期的な投稿をすること。

 

■必要なもの

Azureアカウント
Twitterアカウント

 

■Azure Logic Appsについて

Azure Logic Appsとは、Azureの機能の一つで
ワークフローを指定するだけで
いろいろなアプリやシステムを連携させて動かすことができるものです。
詳細はMicrosoftの公式ドキュメントを参照ください。

Azure Logic Apps のドキュメント - チュートリアル、API リファレンス | Microsoft Docs

 

■ロジックアプリを作る

Azureポータルにサインインし、

[新規作成[+]]>[logic]で検索>[Logic App]>[作成]をクリックします。

f:id:mitsunooon:20190430185921j:plain

 

f:id:mitsunooon:20190430185938j:plain

 

Logic Appの名前、リソースグループ、場所を指定します。
今回は以下のパラメータでやります。

f:id:mitsunooon:20190430190116j:plain

 

■ワークフローの作成(トリガー部分)

作成したロジックアプリのリソースに飛ぶとデザイナーのテンプレートがいくつか出てきます。
やりたいことに合わせて、テンプレートから選択するのもいいと思います。

今回はテンプレートを使わず1から作るので[空のロジック アプリ]をクリックします。

f:id:mitsunooon:20190430190236j:plain

f:id:mitsunooon:20190430190255j:plain

 

まず初めにトリガーを設定します。

[スケジュール]>[繰り返し]をクリックします。

f:id:mitsunooon:20190430190349j:plain

 

f:id:mitsunooon:20190430190430j:plain


1つ目のツイートを投稿したい日時を設定します。
今回は7日周期にします。

f:id:mitsunooon:20190430190454j:plain

 

■ワークフローの作成(アクション部分)

次にアクションとして実際にツイートする内容を設定します。

[+新しいステップ]をクリックします。

f:id:mitsunooon:20190430190603j:plain

 

[Twitter]>[ツイートの投稿]をクリックします。

f:id:mitsunooon:20190430190634j:plain

 

f:id:mitsunooon:20190430190649j:plain

 

Twitterへのサインインを求められます。
[サインイン]をクリックすると、Twitterへのサインイン画面が出てきます。
ツイートを投稿したいアカウントでサインインします。

f:id:mitsunooon:20190430190733j:plain


認証許可の確認画面が出るので[Allow access]をクリックします。

f:id:mitsunooon:20190430190828j:plain

 

アカウントの連携ができたらツイートの内容を設定します。
[新しいパラメーターの追加]をクリックし、
[ツイートテキスト]のチェックボックスを有効にします。

f:id:mitsunooon:20190430190904j:plain

 

[ツイートテキスト]に投稿内容を設定します。

f:id:mitsunooon:20190430190938j:plain

 

2つ目以降のツイートの設定をします。

[+新しいステップ]をクリックします。

[スケジュール]>[待ち時間]をクリックします。
前のツイートが投稿された次の日に投稿されるようにします。

f:id:mitsunooon:20190430191027j:plain

 

同様にツイートの内容を設定します。

f:id:mitsunooon:20190430191300j:plain

 

以降、投稿したいツイートの数だけ繰り返します。

完了したら[保存]をクリックします。

f:id:mitsunooon:20190430191334j:plain

 

■実行

作成したワークフローを実行します。
[実行]をクリックします。

f:id:mitsunooon:20190430191435j:plain

 

実際のTwitterアカウントを見に行くとちゃんと投稿されています。やったー!

f:id:mitsunooon:20190430191516j:plain


■コスト

Azureを使う上で気になるのはやはりコストですよね。
定期botに使って、知らない間にかさんでいたら…と思うと恐ろしいですが
LogicApps自体はほとんどコストはかからないようです。
1日1回投稿の今回程度のbotであれば個人的には許容内かと。

価格 - Logic Apps | Microsoft Azure

 

テストのために試行錯誤してた日のコストはこれくらいでした。

f:id:mitsunooon:20190430192424j:plain

 

■改善点

Logic Appsを突発で触って作った今のままだと、下記の点で不便です。
  • 記事を更新するたびにAzureにも設定を追加しないといけない。
  • 投稿が被らないように、記事の数に合わせてトリガーの日数間隔を計算しないといけない。

うーん、不便。
これなら完全無料のTwitterBotサービスを使ったほうがよさそうです。
理想はブログからランダムに記事を引っ張ってきて
1日2回くらい投稿させたいです。
アクションには機能がいろいろあるのでもう少しワークフローを練ります。
デザイナーじゃなくてコードで書いたほうが楽かもしれない。。。