Azure CLI のサンプル スクリプト - ロジック アプリを作成する

適用対象: Azure Logic Apps (従量課金)

このスクリプトでは、Azure CLI Logic Apps 拡張機能 (az logic) を使用して、サンプルのロジック アプリを作成します。 Azure CLI を使用してロジック アプリを作成および管理するための詳細なガイドについては、Azure CLI の Logic Apps クイックスタートを参照してください。

警告

Azure CLI Logic Apps 拡張機能は、現在、"試験段階" であり、"カスタマーサポートの対象外" です。 この CLI 拡張機能は、特に運用環境での使用を選択する場合、慎重に使用してください。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
  • ご利用のローカル コンピューターに Azure CLI がインストールされていること。
  • ご利用のローカル コンピューターに Azure CLI Logic Apps 拡張機能 がインストールされていること。 この拡張機能をインストールするには、コマンド az extension add --name logic を使用します。
  • ロジック アプリのワークフロー定義。 この JSON ファイルは、ワークフロー定義言語スキーマに従う必要があります。
  • お使いのロジック アプリと同じリソース グループ内にある、サポートされている Azure Logic Apps コネクタを経由した電子メール アカウントへの API 接続。 この例では Office 365 Outlook コネクタを使用しますが、Outlook.com などの他のコネクタを使用することもできます。

前提条件のチェック

開始する前に、環境を検証します。

サンプル ワークフローの説明

このサンプル ワークフローの定義ファイルでは、Azure portal のクイックスタートと同じ、基本的な従量課金ロジック アプリ ワークフローの例を作成します。

このサンプル ワークフローでは、次のことを行います。

  1. ロジック アプリのスキーマ ($schema) を指定します。

  2. トリガーの一覧 (triggers) にロジック アプリのトリガーを定義します。 トリガーは、3 時間ごとに繰り返されます (recurrence)。 アクションは、指定された RSS フィード (feedUrl) に対して新しいフィード項目が発行されたとき (When_a_feed_item_is_published) にトリガーされます。

  3. アクションの一覧 (actions) にロジック アプリのアクションを定義します。 このアクションによって、アクションの入力 (inputs) の本文セクション (body) で指定されている RSS フィード項目の詳細が Microsoft 365 経由で電子メールで送信されます (Send_an_email_(V2))。

サンプル ワーフクローの定義

サンプル スクリプトを実行する前に、最初にサンプル ワークフローの定義を作成する必要があります。

  1. お使いのコンピューターに JSON ファイル testDefinition.json を作成します。

  2. 次の内容をその JSON ファイルにコピーします。

    
    {
        "definition": {
            "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
            "actions": {
                "Send_an_email_(V2)": {
                    "inputs": {
                        "body": {
                            "Body": "<p>@{triggerBody()?['publishDate']}<br>\n@{triggerBody()?['title']}<br>\n@{triggerBody()?['primaryLink']}</p>",
                            "Subject": "@triggerBody()?['title']",
                            "To": "test@example.com"
                        },
                        "host": {
                            "connection": {
                                "name": "@parameters('$connections')['office365']['connectionId']"
                            }
                        },
                        "method": "post",
                        "path": "/v2/Mail"
                    },
                    "runAfter": {},
                    "type": "ApiConnection"
                }
            },
            "contentVersion": "1.0.0.0",
            "outputs": {},
            "parameters": {
                "$connections": {
                    "defaultValue": {},
                    "type": "Object"
                }
            },
            "triggers": {
                "When_a_feed_item_is_published": {
                    "inputs": {
                        "host": {
                            "connection": {
                                "name": "@parameters('$connections')['rss']['connectionId']"
                            }
                        },
                        "method": "get",
                        "path": "/OnNewFeed",
                        "queries": {
                            "feedUrl": "https://www.pbs.org/now/rss.xml"
                        }
                    },
                    "recurrence": {
                        "frequency": "Hour",
                        "interval": 3
                    },
                    "splitOn": "@triggerBody()?['value']",
                    "type": "ApiConnection"
                }
            }
        },
        "parameters": {
            "$connections": {
                "value": {
                    "office365": {
                        "connectionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResourceGroup/providers/Microsoft.Web/connections/office365",
                        "connectionName": "office365",
                        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/locations/westus/managedApis/office365"
                    },
                    "rss": {
                        "connectionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testResourceGroup/providers/Microsoft.Web/connections/rss",
                        "connectionName": "rss",
                        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Web/locations/westus/managedApis/rss"
                    }
                }
            }
        }
    }
    
    
  3. プレースホルダーの値を独自の情報に更新します。

    1. プレースホルダーの電子メール アドレス ("To": "test@example.com") を置き換えます。 Logic Apps コネクタと互換性のある電子メール アドレスを使用する必要があります。 詳細については、前提条件を参照してください。

    2. Office 365 Outlook コネクタとは異なる電子メール コネクタを使用している場合は、追加のコネクタの詳細情報を置き換えます。

    3. connections パラメーター ($connections) の下にある接続識別子 (connectionIdid) のプレースホルダー サブスクリプション値 (00000000-0000-0000-0000-000000000000) を独自のサブスクリプション値に置き換えます。

  4. 変更を保存します。

サンプル スクリプト

注意

このサンプルは、bash シェル用に記述されています。 このサンプルを別のシェル (Windows PowerShell、コマンド プロンプトなど) で実行する場合は、スクリプトに変更を加える必要がある場合があります。

このサンプル スクリプトを実行する前に、このコマンドを実行して Azure に接続します。


az login

次に、ワークフロー定義を作成したディレクトリに移動します。 たとえば、ワークフロー定義の JSON ファイルをデスクトップに作成した場合は、次のようになります。


cd ~/Desktop

次に、このスクリプトを実行してロジック アプリを作成します。


#!/bin/bash

# Create a resource group

az group create --name testResourceGroup --location westus

# Create your logic app

az logic workflow create --resource-group "testResourceGroup" --location "westus" --name "testLogicApp" --definition "testDefinition.json"

デプロイのクリーンアップ

サンプル スクリプトの使用が完了したら、次のコマンドを実行して、リソース グループと、そのすべての入れ子になったリソース (ロジック アプリを含む) を削除します。


az group delete --name testResourceGroup --yes

スクリプトの説明

このサンプル スクリプトでは、次のコマンドを使用して新しいリソース グループとロジック アプリを作成します。

command メモ
az group create ロジック アプリのリソースを格納するリソース グループを作成します。
az logic workflow create パラメーター --definition で定義されているワークフローに基づいてロジック アプリを作成します。
az group delete リソース グループと、そのすべての入れ子になったリソースを削除します。

次のステップ

Azure CLI の詳細については、Azure CLI のドキュメントのページを参照してください。

その他の Logic Apps CLI スクリプトのサンプルについては、Microsoft のコード サンプル ブラウザーを参照してください。