11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-07-04

Logic Appsとは

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

実際の構築

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

  1. HTTP要求をトリガーに設定
    0702_1.PNG
    (URLはロジックの保存後に発行されます)

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

    {
        "fileName": "hogehoge"
    }
    

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

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

    0702_2.PNG

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

    0702_3.PNG

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

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

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

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

    0702_4.PNG

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

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

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

    0702_5.PNG

  4. 実行確認

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

    0702_6.PNG

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

最後に

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

0702_7.PNG

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

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

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?