次の方法で共有


Azure Logic Apps のワークフロー入力のためのクロス環境パラメーターを作成する

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

開発、テスト、運用環境間でワークフローで変更される可能性のある値を抽象化する必要がある場合は、 ワークフロー パラメーターを定義できます。 環境固有の変数ではなく、これらのパラメーターを使用する場合は、ワークフロー ビジネス ロジックの設計に重点を置いて、後で環境固有の変数を挿入できます。

この記事では、マルチテナント消費ロジック アプリ ワークフローとシングルテナント標準ロジック アプリ ワークフローのパラメーターを作成、使用、および編集する方法について説明します。 環境変数を管理する方法についても説明します。

マルチテナントとシングルテナントの Azure Logic Apps の詳細については、 Azure Logic Apps でのシングルテナントとマルチテナントの比較に関するページを参照してください。

前提条件

従量課金と Standard のロジック アプリ ワークフローのパラメーター

従量課金ロジック アプリ ワークフローと Standard ロジック アプリ ワークフローの両方で、ワークフロー デザイナーを使用してパラメーターを定義できます。 パラメーターを定義したら、 同じ ロジック アプリ リソース内の任意のワークフローまたは接続からそのパラメーターを参照できます。

マルチテナント消費ロジック アプリ ワークフローでは、デザイナーでパラメーターを作成して使用します。 次に、Azure Resource Manager テンプレート (ARM テンプレート) とテンプレート パラメーター ファイルで環境変数を定義して設定します。 このシナリオでは、 デプロイ時にパラメーターを定義して設定する必要があります。 この要件は、変数を 1 つだけ変更する必要がある場合でも、ロジック アプリの ARM テンプレートを再デプロイする必要があることを意味します。

シングルテナントの Standard ロジック アプリ ワークフローでは、パラメーター "および" アプリ設定を使用して、実行時とデプロイの両方で環境変数を操作できます。 アプリ設定には、同じロジック アプリ リソース内の "すべてのワークフロー" のためのグローバル構成オプションが含まれています。 詳細については、「 シングルテナント ベースのロジック アプリのホストとアプリの設定を編集する」を参照してください。

重要

ユーザー名やパスワードを含む接続文字列などの機密情報を使用する場合は、使用可能な最も安全な認証フローを使用してください。 たとえば、Standard ロジック アプリ ワークフローでは、securestringsecureobject などのセキュリティで保護されたデータ型はサポートされていません。 Microsoft では、可能な場合はマネージド ID を使用して Azure リソースへのアクセスを認証し、必要最小限の特権を持つロールを割り当てることをお勧めします。

この機能が使用できない場合は、アプリ設定で使用できる Azure Key Vault などの他の方法で接続文字列をセキュリティで保護してください。 これで、接続文字列やキーなど、セキュリティで保護された文字列を直接参照できます。 デプロイ時に環境変数を定義できる ARM テンプレートと同様に、ロジック アプリのワークフロー定義内でアプリ設定を定義できます。 その後、接続エンドポイントやストレージ文字列など、動的に生成されたインフラストラクチャ値をキャプチャできます。 詳細については、「Microsoft ID プラットフォームのアプリケーションの種類」を参照してください。

アプリの設定にはサイズ制限があります。 また、Azure Logic Apps の特定の領域から参照することもできません。 パラメーターでは、大きな値のサイズや複雑なオブジェクトのサポートなど、アプリ設定よりも幅広いユース ケースが提供されます。

たとえば、Visual Studio Code を開発ツールとして使用してワークフローをローカルで実行する場合は、 parameters.json ファイルを使用してパラメーターを定義できます。 その後、プロジェクトの workflow.json ファイルの任意のワークフローや、プロジェクトの connections.json ファイル内の任意の接続オブジェクトから、このパラメーター ファイル内の任意のパラメーターを参照できます。 次の一覧では、一般的なユース ケースについて説明します。

  • テスト時に使用するすべての値を含むテスト パラメーター ファイルを用意します。 デプロイ時に、テスト パラメーター ファイルを実稼働パラメーター ファイルに置き換えます。

  • connections.json ファイルのさまざまな部分をパラメーター化します。 その後、 connections.json ファイルをソース管理にチェックインし、 parameters.json ファイル経由で接続を管理できます。

  • authentication JSON オブジェクトなどの複雑なオブジェクトをパラメーター化します。 たとえば、authentication オブジェクトの値を、単一のパラメーター式 (@parameters('api-auth')など) を保持する文字列に置き換えることができます。

  • プロジェクトの local.settings.json ファイルでアプリ設定を確認し、編集します。 次に、パラメーターでこれらのアプリ設定を参照します。

アプリ設定の代わりに値をパラメーター化する既定の方法としてパラメーターを使用することを検討してください。 そうすることで、セキュリティで保護されたキーや文字列を格納する必要がある場合、推奨事項に従って、パラメーターからアプリ設定を参照できます。 パラメーターを使用してアプリ設定を参照することで、ソリューションで両方のオプションを使用できます。

パラメーターの定義、使用、および編集

この手順では、Azure portal で従量課金または標準ロジック アプリ ワークフローのパラメーターを操作する方法について説明します。

  1. Azure portal で、ロジック アプリ リソースを開きます。

    • Standard ロジック アプリの場合、リソース サイドバー メニューの [ ワークフロー] で [ ワークフロー] を選択します。

      [ ワークフロー ] ページで、空のワークフローを選択してデザイナーを開きます。

    • 従量課金ロジック アプリの場合は、リソース サイドバー メニューの [開発ツール] でデザイナーを選択してワークフローを開きます。

  2. デザイナーのツール バーで、[パラメーター] を選択します。

    ワークフロー デザイナーが開き、デザイナー ツール バーの [パラメーター] が強調表示されている Azure portal を示すスクリーンショット。

  3. [パラメーター] ペインで、[パラメーターの作成] を選択します。

  4. 作成するパラメーターに関する次の情報を指定します。

    プロパティ 必須 説明
    名前 はい 作成するパラメーターの名前です。
    タイプ はい パラメーターのデータ型。ArrayBoolFloatIntObjectString などです。

    : Standard ロジック アプリ ワークフローでは、securestringsecureobject などのセキュリティで保護されたデータ型はサポートされていません。
    (標準) はい パラメーターの値。

    Standard ロジック アプリ ワークフローで、パラメーター値を指定します。 ワークフロー ロジック、接続情報、およびパラメーター値は、1 つの場所に存在しません。 デザイナーは、ワークフローを読み込む前にパラメーター値を解決できる必要があります。
    既定値 (消費) はい パラメーターの既定値。 既定のパラメーター値を指定する必要があります。 ワークフロー ロジック、接続情報、およびパラメーター値は、1 つの場所に存在しません。 デザイナーは、ワークフローを読み込む前にパラメーター値を解決できる必要があります。

    重要: Secure ObjectSecure String のデータ型の場合は、値がプレーンテキストとして格納されるので、既定値を設定しないようにしてください。
    実績値 (消費) いいえ パラメーターの実際の値。

    次の例は、文字列パラメーターの定義を示しています。

    ワークフロー デザイナーを含む Azure portal と、パラメーター定義の例を示す [パラメーター] ウィンドウを示すスクリーンショット。

  5. 完了したら、[ パラメーター] ウィンドウを閉じます。 新しいパラメーター定義を保存するには、ワークフローを保存してください。

同じロジック アプリのワークフロー内のトリガーまたはアクションからパラメーターを参照するには、次の手順に従います。

  1. デザイナーで、目的のワークフローを開き、トリガーまたはアクションを選択します。

  2. 情報ウィンドウの [パラメーター] タブで、 パラメーター を使用するプロパティで、そのプロパティの編集ボックス内を選択します。 稲妻アイコンを選択して、動的コンテンツ リストを開きます。

  3. その一覧の [ パラメーター] で、以前に作成したパラメーターを選択します。

    スクリーンショットは、動的コンテンツ リストに作成されたパラメーターを示しています。

同じロジック アプリでパラメーターを表示または編集するには:

  1. ワークフロー デザイナーでワークフローを開きます。 Fon Consumption Logic アプリで、開発ツール>Logic App デザイナーを選択します。 Standard ロジック アプリの場合は、[ ワークフロー>ワークフロー] を選択し、ワークフローを選択してデザイナーを開きます。

  2. デザイナーのツール バーで、[パラメーター] を選択します。

    [パラメーター] ウィンドウが開き、そのロジック アプリで定義したすべてのパラメーターが表示されます。

  • 標準ワークフローのみ: 一括 JSON で表示または編集するには、リソース サイドバー メニューで [パラメーター] を選択します。 [ パラメーター ] ペインで、[ JSON で編集] を選択します。

    [パラメーター] JSON ビューが開き、そのロジック アプリのワークフローから定義したすべてのパラメーターが表示されます。

Visual Studio Code

この手順では、Visual Studio Code を使用して標準ロジック アプリ ワークフローのパラメーターを操作する方法について説明します。

  1. parameters.json という名前のプロジェクトのルートレベルの JSON ファイルで、"すべて" のパラメーターとその値を定義します。 このファイルには "キーと値" のペアを含むオブジェクトがあります。 各 キー は、各パラメーターの名前です。 各 は、パラメーターの構造です。 各構造体には、typevalue の両方の宣言を含める必要があります。

    重要

    parameters.json ファイルでは、プロジェクト内の他の場所で参照または使用するすべてのパラメーターとその値を定義して含める必要があります。 この要件には、ワークフロー定義と接続が含まれます。

    次の例は、基本的なパラメーター ファイルを示しています。

    {
        "responseString": { 
            "type": "string", 
            "value": "hello" 
        },
        "functionAuth": { 
            "type": "object", 
            "value": { 
                "type": "QueryString", 
                "name": "Code", 
                "value": "@appsetting('<AzureFunctionsOperation-FunctionAppKey>')" 
            }
        }
     }
    

    parameters.json ファイルでは、 @appsetting のみが有効な式型です。

  2. トリガーまたはアクション入力でパラメーターを参照するには、式 @parameters('<parameter-name>') を使用します。

接続ファイルのパラメーター化

connections.json ファイルをパラメーター化するには、ConnectionRuntimeUrl などのリテラル値を単一の parameters() 式 (たとえば、@parameters('api-runtimeUrl')) に置き換えます。 connections.json ファイルで、有効な式の型は @parameters@appsetting だけです。

重要

開発時に connections.json ファイルをパラメーター化すると、ローカルと Azure portal の両方でデザイナー エクスペリエンスが制限されます。 開発にデザイナーを使用する必要がある場合は、代わりにパラメーター化されていない connections.json ファイルを使用してください。 その後、デプロイ パイプラインで、パラメーター化されたファイルに置き換えます。 この場合でも、ランタイムはパラメーター化で動作します。 デザイナーの機能強化は、現在開発中です。

次の例では、アプリ設定とパラメーターの両方を使用する、パラメーター化された connections.json ファイルを示します。 このサンプル ファイルでは、複雑な blob_auth 認証オブジェクトにパラメーターを使用し、その他の値にアプリ設定を使用しています。

可能な場合はパラメーターを使用します。 アプリ設定はデプロイ中に生成され、開発パイプラインで動的に設定する方が簡単であるため、このシナリオでは、パラメーターよりもアプリ設定を使用する必要があります。 この場合、ワークフローでパラメーターを参照する可能性が低いため、認証オブジェクトのパラメーターを使用できます。

{
   "serviceProviderConnections": {
      "serviceBus": {
         "parameterValues": {
            "connectionString": "@appsetting('serviceBus_connectionString')"
        },
        "serviceProvider": {
           "id": "/serviceProviders/serviceBus"
        },
        "displayName": "servicebus"
     }
   },
   "managedApiConnections": {
      "azureblob": {
         "api": {
            "id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/providers/Microsoft.Web/locations/@{appsetting('WORKFLOWS_LOCATION_NAME')}/managedApis/azureblob"
         },
         "connection": {
            "id": "/subscriptions/@{appsetting('WORKFLOWS_SUBSCRIPTION_ID')}/resourceGroups/@{appsetting('WORKFLOWS_RESOURCE_GROUP_NAME')}/providers/Microsoft.Web/connections/azureblob"
         },
         "connectionRuntimeUrl": "@appsetting('BLOB_CONNECTION_RUNTIMEURL')",
         "authentication": "@parameters('blob_auth')"
      }
   }
}

プレーンテキストとインラインになっている式がある場合は、その式を中かっこ ({}) で囲み、その式に対して挿入形式を使います。 この形式は、解析の問題を回避するのに役立ちます。

たとえば、"<text>/@<function-name>('<parameter-name>')/<text>" がある場合は、代わりに次のバージョンを使用します。 "<text>/@{<function-name>('<parameter-name>')}/<text>"

詳細については、「 関数の使用に関する考慮事項」を参照してください。

パラメーター ファイルを管理する

通常、複数のバージョンのパラメーター ファイルを管理する必要があります。 ターゲット値は、開発、テスト、運用など、さまざまなデプロイ環境に使用できます。 多くの場合、これらのパラメーター ファイルの管理は、ARM テンプレート パラメーター ファイルの管理と同様です。 特定の環境にデプロイする場合、通常は DevOps のパイプラインを通じて、対応するパラメーター ファイルを昇格させます。

Azure CLI を使用してパラメーター ファイルを動的に置き換えるには、次のコマンドを実行します。

az functionapp deploy --resource-group MyResourceGroup --name MyLogicApp --src-path C:\parameters.json --type static --target-path parameters.json

NuGet ベースのロジック アプリ プロジェクトがある場合は、プロジェクト ファイル (<logic-app-name>.csproj) を更新して、ビルド出力にパラメーター ファイルを含める必要があります。次に例を示します。

<ItemGroup>
  <None Update="parameters.json">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

現時点では、パラメーター ファイルを動的に置き換える機能は、Azure portal またはワークフロー デザイナーでは使用できません。

DevOps デプロイ用にロジック アプリを設定する方法の詳細については、次の記事を参照してください。

アプリ設定を管理する

Standard ロジック アプリでは、アプリ設定には、同じロジック アプリ 内のすべてのワークフローの グローバル構成オプションが含まれています。 ワークフローを Visual Studio Code でローカルに実行すると、これらのアプリ設定に、local.settings.json ファイル内のローカル環境変数としてアクセスできます。 その後、これらのアプリ設定をパラメーターで参照できます。

次のセクションでは、Visual Studio Code、Azure portal、Azure CLI、ARM (Bicep) テンプレートのアプリ設定を追加、更新、または削除する方法について説明します。

Azure portal を使用してアプリ設定を確認する

ロジック アプリ リソースのアプリ設定を Azure portal で確認するには、以下の手順に従います。

  1. Azure portal で、ロジック アプリ リソースを開きます。

  2. リソース サイドバー メニューの [設定] で、[環境変数] を選択 します

  3. [ 環境変数 ] ページの [ アプリ設定 ] タブで、ロジック アプリのアプリ設定を確認します。

  4. すべての値を表示するには、[値を表示する] を選択します。 または、1 つの値を表示するには、その値を選択します。

新しい設定を追加するには、次の手順に従います。

  1. [ アプリケーション設定] で、[ + 追加] を選択します。

  2. [名前] に、新しい設定の "キー" または名前を入力します。

  3. [値] には、新しい設定の値を入力します。

  4. 必要に応じて、[ デプロイ スロットの設定] を選択します。

  5. 新しい キーと値 のペアを作成する準備ができたら、[ 適用] を選択します。

Azure CLI を使用してアプリ設定を確認する

Azure CLI を使用して現在のアプリ設定を確認するには、コマンド az logicapp config appsettings list を実行します。 このコマンドに --name -n および --resource-group -g パラメーターを必ず含めてください。次に例を示します。

az logicapp config appsettings list --name MyLogicApp --resource-group MyResourceGroup

Azure CLI を使用してアプリ設定を追加または更新するには、コマンド az logicapp config appsettings set を実行します。 このコマンドに --name n および --resource-group -g パラメーターを必ず含めてください。 たとえば、次のコマンドを使用して、CUSTOM_LOGIC_APP_SETTING という名前のキーと値 12345 を持つ設定を作成します。

az logicapp config appsettings set --name MyLogicApp --resource-group MyResourceGroup --settings CUSTOM_LOGIC_APP_SETTING=12345 

Resource Manager または Bicep ファイルでアプリ設定を確認して定義する

ARM テンプレートまたは Bicep ファイルでアプリ設定を確認して定義するには、ロジック アプリのリソース定義を見つけて、 appSettings JSON オブジェクトを更新します。 リソース定義の詳細については、ARM テンプレートのリファレンスを参照してください。

この例では、ARM テンプレートまたは Bicep ファイルのファイル設定を示します。

"appSettings": [
    {
        "name": "string",
        "value": "string"
    },
    {
        "name": "string",
        "value": "string"
    },
    <...>
],