Azure Logic AppsでノンプログラミングREST API


Logic Appsとは

Logic Apps は、Microsoft Azure の PaaS サービスでアプリケーションをホストする App Service のサブ機能の位置づけのサービスです。
特徴としては、プログラミングなしで手軽に複数のサービスを相互にコネクションすることができます。
すでに、接続用に準備されたコネクタは現時点で約160種類以上あります。

実際の構築

今回はクライアントからHTTPの要求を受けて指定の画像ファイルをAzureBlobStrageから取得し、クライアントにbase64でエンコードした文字列を返却するAPIを作成します。

  1. HTTP要求をトリガーに設定

    (URLはロジックの保存後に発行されます)

    ここで要求本文(Body)のJSONスキーマを設定しておくと、のちのアクションでパラメータごとに使用が可能となります。
    ここでは

    {
        "fileName": "hogehoge"
    }
    

    という形のJSONで本文が送られてくると設定します。

    【サンプルのペイロードを使用してスキーマを生成する】を選択し、上記のJSONをそのまま貼り付けます。

    スキーマが自動的に設定されていれば完了です。

  2. Blobからpdfを取得するアクションを追加

    ※Blobストレージと接続するには接続文字列が必要なのでBlob側の【アクセスキー】から接続文字列を取得しておく必要があります。

    今回はパスによるBLOBコンテンツの取得アクションを選択します。

    以下、画像のようにBLOBパスの文字列の中にスキーマで設定したfileNameを動的なコンテンツとして使用することができます。

  3. クライアントへ画像ファイルを返却する

    トリガーをHTTPの要求に設定した場合、応答アクションとしてHTTPのレスポンスを返却することができます。(応答を設定しなかった場合は処理の結果を待たずに202を返す)

    応答本文のJSONも自身で定義でき、Blobから取得したファイルコンテンツを動的なコンテンツとして指定できます。
    この際、【式】タブから様々な関数を実行することができ、今回は取得した画像ファイルをbase64でエンコードする関数を追加します。

  4. 実行確認

    ではロジックを保存して確認してみましょう。
    RESTのクライアントから要求を投げると、、、

    実行は成功して想定通りのJSONが返却されました。

最後に

今回作成したロジックの全体像

このようにLogicAppsを使えば簡単にサーバーサイドをノンプログラミングで構築できます。
他にも、処理を分岐させて非同期で実行したり、配列ループさせたりと様々なことができます。
さらに複雑な処理をしたい場合はAzure Functionsと組み合わせることもできます。

課金はロジックの実行時間に応じてなので、皆さんもまずはデザイナーで何ができるか試してみるのはいかがでしょうか。