Azure Scheduler の Azure REST API を呼んでみる


そろそろ私の番かな?どうも、新里です。
夏季休暇をフルに活用しても積みゲーが全然減らない。。。
そんな今日この頃、皆さんは如何お過ごしでしょうか。

 今回は「Azure Scheduler と Azure REST API」についてお話しさせて頂こうかと思います。
興味がある方はどうぞ宜しくお願い致します。



 Azure Scheduler とは、Microsoft Azure が提供するサービスの一つで、Http/s エンドポイントの呼び出し等を定期的なスケジュールを設定して呼び出す事が出来ます。
 Azure のサービス管理をブラウザ上から実施できる Azure Portal から GUI 上でスケジュールやアクションを設定したり、プログラムから API を呼び出して登録済みのスケジュールの一覧取得等を行うことも出来ます。

まずは、Azure Portal からの Scheduler の利用方法をご紹介致します。



Azure Portal
 毎度お馴染みの Azure Portal。
ブラウザからアクセス出来、Azure 上のサービス環境構築を管理する事が出来ます。
(クラシック版では無い前提で進めさせていただきます)

 Scheduler も Azure Portal からサービスを立ち上げることが出来ます。
サブスクリプションとリージョンを指定し、課金プランを決めて、ジョブコレクション名、ジョブ名、アクションと実行スケジュールを登録します。
とりあえずであれば、Freeプランで十分です。
1ユニットしか登録できませんが、1ユニットに対し5つのジョブが登録可能で、1月3600回までのジョブ実行が可能です。
Standardプラン以上でないと、分単位での実行スケジュールの登録が出来ませんが、時間単位での設定は可能です。



 アクションには、Http(s) リクエストと Azure Storage へのエンキューが設定出来ます。
アクションの設定には再試行設定回数やエラー時のアクションを設定することも出来るので、
失敗した際にメールやチャットツールへ通知を出す様にしておけば、すぐに問題を検知出来ます。
また、スケジュール設定では、分、時間、日、週、月 のインターバルで細かく設定出来ます。
(分単位設定は Standard プラン以上)


 これで毎日 google にアクセスするジョブが完成です!
一体何のためのジョブなんだ。。。
(この後、スタッフが責任を持ってこのジョブを削除致しました。)

 一度登録したジョブは、Azure Portal から確認することが出来、
スケジュール設定やアクション設定の更新を行う事が出来ます。
「今すぐ実行」のボタンをクリックすれば、その場でテスト実行することも出来ます。
また、これまでの実行履歴を確認する事も可能です。





Azure REST API
 Azure Portal からだけでも十分なんですが、Azure REST API を使用することでも、
Azure Portal を通じて使用できる機能を使用する事が出来ます。
例えば、プログラムから API を呼び出してスケジュールの一覧取得、登録、削除等を実施出来ます。
スケジュール管理を Azure Portal 以外から行いたい時に有用となります。

 Azure REST API を使用する場合には、
認証が必要となるため、サブスクリションやリソースグループの情報やキーの発行等、以下の様な手続きが必要になります。

 下記例では、OAuth2.0とAzure Active Directory(AAD)を使用した認証手順となります。
 OAuth は何が出来るかを確認するためのプロトコルとなり、
ユーザはAADに登録を行って権限を与え、その際に与えられた情報を使用してOAuthプロトコルを使用し認可を取得します。

例:Azure Active Directory (AAD)を利用した Azure REST API (ジョブ一覧取得)の使用方法
1. Azure REST API を使用するクライアントアプリケーションを用意
 ※ : API を実際に呼び出すアプリのこと

2. Azure Portal にて所属サブスクリプションの AAD へ登録する
 サブスクリプションと紐付いた AAD に手順1のアプリを登録する

3. AAD にて必要なアクセス許可を与える
 AAD の対象アプリの設定画面から、対応できます

4. AAD にて秘密鍵を作成する
 AAD の対象アプリの設定画面から、対応できます
(キーは最初しか表示されないので、その後の再確認は不可能になるので注意)

5. サブスクリプションから、対象のアプリに権限を付与する
 該当のサブスクリプションの概要ページから、Access Controll(IAM) から、対象アプリを検索して権限を与える

6. 認証トークンを取得

7. 取得したトークンを使用したい Azure REST API の Authorization ヘッダ入れて実行



 詳細はこちらからご確認頂ければと思います。
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds

 上記では、Scheduler のジョブ一覧取得の例になりますが、他にも様々なAPIが提供されており、Azure Portal を通じて使用できる機能の多くにプログラムでアクセスできます。
https://docs.microsoft.com/ja-jp/rest/api/

 API を実際に利用するアプリケーション(手順1)を Web Apps 等の Azure のサービスにしてしまえば比較的容易に認証処理手順が行えるので便利です。(Azure Portal 上で可能)
 

 如何でしたでしょうか。
様々な要件に対応するのに Azure REST API を使用したサービス間の連携は有用です。
Azure Portal のアカウントが無くても機能利用できるツールを提供したいなんて場合にも利用できるので、Azure を活用したい場合には知っておいて損はありません。


それでは今回は、この辺りで失礼致します。
ありがとうございました。

採用情報

クラウドクリエイティブスタジオでは絶賛エンジニア募集中です。
ご興味のある方は是非!

採用情報

コメント