Azure Logic Apps のワークフロー テンプレートを作成して公開する
適用対象: Azure Logic Apps (Standard)
Azure Logic Apps には、統合アプリケーションを構築するプロセスを高速化するために使用できる事前構築済みの統合ワークフロー テンプレートが用意されています。 これらのテンプレートは一般的に使用されるパターンに従っており、定義済みのビジネス ロジックと構成で開始点またはベースラインを提供すると、開発を効率化するのに役立ちます。
ワークフロー テンプレートを使用して開発を開始できるだけでなく、独自に使用するワークフロー テンプレートを作成したり、他のユーザーと共有したりすることもできます。 テンプレートには、スキーマ、マップ、カスタム アセンブリなどの成果物を含めることができます。 Azure portal のテンプレート ギャラリーにテンプレートを追加するには、この攻略ガイドを使用してテンプレート パッケージを作成します。 完了したら、GitHub for Azure Logic Apps の ワークフロー テンプレート リポジトリにアクセスします。ここでは、テンプレート パッケージの pull request を作成したり、Azure Logic Apps チームにテンプレートのレビューを依頼したりすることができます。
制限事項
ワークフロー テンプレートでは現在、Standard ロジック アプリと単一のワークフローのみがサポートされています。
テンプレート パッケージに含まれるもの
次の表では、テンプレート パッケージ内の必須ファイルと省略可能なファイルについて説明します。
ファイル名 | 必須 | 説明 |
---|---|---|
workflow.json | はい | ワークフロー定義を含む JSON ファイル。 |
manifest.json | はい | ワークフローと関連コンポーネントに関する情報を含む JSON ファイル。 |
<image-name>-dark.png | はい | 読み取り専用のスクリーンショットとしてワークフローを含む .png 形式の画像ファイルで、ブラウザーのダーク テーマで動作します。 |
<image-name>-light.png | はい | 読み取り専用のスクリーンショットとしてワークフローを含む .png 形式の画像ファイルで、ブラウザーのライト テーマで動作します。 |
<map-name>.json、.xml、または.xslt | いいえ | ワークフロー テンプレートをサポートするマップやスキーマなどの成果物。 |
<custom-assembly>.dll | いいえ | ワークフロー テンプレートをサポートするカスタム アセンブリ。 |
readme.md | いいえ | ワークフロー テンプレートの指示、手順、またはその他の情報を含むマークダウン ファイル。 |
また、テンプレートを維持およびサポートする他のファイル (テストやサンプル データを含むファイルなど) を含めることもできます。
テンプレート パッケージ フォルダーを作成する
テンプレート パッケージ フォルダーを作成する前に、名前とスタイルの規則について理解しておいてください。
テンプレート リポジトリの参照、整理、保守を容易にするために、フォルダー名には次の構文を使用し、ファイル パスの文字数制限を超えないように最小限の単語数を使用します。
<workflow-task>-<product>-<pattern-or-protocol, if any>
例については、GitHub の Azure Logic Apps のワークフロー テンプレート リポジトリを参照してください。
テンプレート パッケージ フォルダーを正しく登録するには、 リポジトリのルート レベルの manifest.json ファイルにフォルダー名を追加する必要があります。
workflow.json ファイルを作成する
workflow.json ファイルには、ワークフローの基になる定義が JSON 形式で含まれています。 workflow.json ファイルを作成するには、ワークフロー定義をコピーし、workflow.json という名前のファイルとして保存する必要があります。
ワークフロー定義を取得する最も簡単で最適な方法は、デザイナーを使用してワークフローを作成することです。 「ワークフローのベスト プラクティス」と「名前とスタイルの規則」を必ず確認してください。 または、出発点として、Azure portal のテンプレート ギャラリーから事前構築済みのワークフロー テンプレートを使用することもできます。
ワークフローを構築すると、追加された組み込み、サービス プロバイダー接続、マネージド API 接続、またはライブラリへの参照が、デザイナーによって基になるワークフロー定義に自動的に含められます。
完了したら、基になるワークフロー定義を空の workflow.json ファイルにコピーします。
ワークフローのベスト プラクティス
可能な限り組み込み操作を使用します。 たとえば、Azure Blob Storage コネクタには、Standard ワークフローで使用できる次のバージョンがあります。
組み込みのサービス プロバイダー バージョン。コネクタ ギャラリーに アプリ内ラベル付きで表示されます。 このバージョンは、シングルテナントの Azure Logic Apps ランタイムでホストおよび実行され、より優れたパフォーマンス、スループット、その他の利点を提供します。
Microsoft マネージド API バージョン。コネクタ ギャラリーに共有ラベル付きで表示されます。 このバージョンは、共有グローバル リソースを使用してマルチテナント Azure でホストおよび実行されます。
トリガーとアクションの定義では、ハードコーディングされたプロパティとその値を使用しないでください。
説明的で役立つコメントを追加して、トリガーとアクションの定義に関するコンテキストをさらに提供します。
基になるワークフロー定義をコピーする
Azure portal のワークフロー メニューで、[開発者] の下の [コード] を選択します。
コード ビュー ウィンドウから、ワークフロー定義全体をコピーします。次に例を示します。
workflow.json という名前の空のファイルに、ワークフロー定義を保存します。
workflow.json 内のパラメーター参照
workflow.json ファイル内のパラメーターを参照する場合、サフィックス _#workflowname# を使用するパラメーター名を次のように反映する必要があります:
"name": "@parameters('<parameter-name>_#workflowname#')"
次に例を示します。
"name": "@parameters('sharepoint-folder-path_#workflowname#')"
workflow.json 内の接続参照
workflow.json ファイル内の接続を参照する場合、サフィックス _#workflowname# を使用する接続名を次のように反映する必要があります:
"referenceName": "<connector-ID>_#workflowname#",
"connectionName": "<connector-ID>_#workflowname#"
次に例を示します。
"referenceName": "azureaisearch_#workflowname#",
"connectionName": "azureaisearch_#workflowname#"
コネクタ ID の詳細については、「コネクタ ID を見つける」を参照してください。
ワークフロー テンプレートの画像を作成する
Azure portal では、ワークフロー テンプレート ギャラリー内に各ワークフロー テンプレートの概要ペインがあります。 このペインには、テンプレートによって作成されるワークフローの読み取り専用プレビュー画像と、その他のテンプレート情報が含まれます。
このプレビュー画像を作成するには、次の手順に従います。
デザイナーで、2 つのスクリーンショットを作成するためのワークフローを設定します。
ブラウザーのライト テーマとダーク テーマのそれぞれにバージョンを作成する必要があります。
好みのスクリーンショット ツールを使用して、ワークフローのスクリーンショットを作成します。 ワークフローの周囲に空白を入れすぎないようにしてください。
「名前とスタイルの規則」に従い、.png ファイル名拡張子と任意の名前を使用して各画像を保存します。
ワークフロー テンプレート パッケージの manifest.json ファイルで、同じ画像名を .png ファイル名拡張子なしで
images
セクションに追加します。次に例を示します。"images": { "dark": "workflow-dark", "light": "workflow-light" }
manifest.json ファイルを作成する
manifest.json ファイルには、ワークフローと関連コンポーネントのリレーションシップが記述されています。 現時点では、このファイルを手動で作成する必要があります。または、GitHub の Azure Logic Apps ワークフロー テンプレート リポジトリにある既存の事前構築済みテンプレートから manifest.json ファイルを再利用することもできます。 manifest.json ファイルを作成するときは、名前とスタイルの規則を確認してください。
次の表は、manifest.json ファイル内の属性について説明しています。
属性名 | 必須 | 値 | 説明 |
---|---|---|---|
title |
はい | <template-title> | Azure portal のテンプレートからワークフローを追加するときに開く、テンプレート ギャラリーに表示されるタイトル。 |
description |
はい | <template-description> | テンプレートの説明。テンプレート ギャラリーのテンプレートの概要ペインに表示されます。 |
prerequisites |
いいえ | <template-prerequisites> | テンプレートを使用するために満たす前提条件。 テンプレートの概要ペインに表示されます。 このセクションから他のドキュメントにリンクできます。 |
tags |
いいえ | <template-tags-array> | テンプレートの検索またはフィルター処理に使用するテンプレート タグ。 |
skus |
はい | standard 、consumption |
テンプレートでサポートされているロジック アプリ ワークフロー タイプ。 不明な場合は、standard を使用します。 |
kinds |
いいえ | stateful 、stateless |
ワークフロー モード。実行履歴と操作状態を保存するかどうかを決定します。 既定では、すべてのワークフローは、ステートフルとステートレスの両方のモードで使用できます。 ワークフローがステートフル モードでのみ実行される場合は、この属性を使用してこの要件を明示的に指定します。 |
detailsDescription |
いいえ | 説明を参照してください。 | テンプレートのその他の詳細な説明情報。 |
details |
いいえ | 説明を参照してください。 | テンプレート ギャラリーのフィルター処理に使用するテンプレート情報。 - By : テンプレートの発行元 (Microsoft など)。 - Type : Workflow - Trigger : トリガーの種類 (Recurrence 、Event 、Request など)。 |
artifacts |
はい | <artifacts-array> | テンプレート パッケージ内のすべての関連ファイルには、次の属性が含まれています。 - type : ファイルの種類。これにより、ファイルをコピーする適切な場所 (workflow など) が決まります。 - file : ファイル名と拡張子 (workflow.json など)。 |
images |
はい | 説明を参照してください。 | ブラウザーのライトとダークの両方のテーマのワークフロー画像ファイル名: - light : ライト テーマの画像名 (workflow-light など) - dark : ダーク テーマの画像名 (workflow-dark など) |
parameters |
はい。ただし、存在しない場合は空にすることができます | <workflow-parameters-array> | ワークフロー テンプレート内のアクションのパラメーター。 パラメーターごとに、次のプロパティを指定する必要があります。 - name : パラメーター名にはサフィックス _#workflowname# が必要です。 英数字、ハイフン、アンダースコアのみを使用し、次の形式に従います。<parameter-name>_#workflowname# - displayName : パラメーターのフレンドリ表示名。 「名前とスタイルの規則」を参照してください。 - type : パラメーターのデータ型 (String や Int など)。 - default : パラメーターの既定値 (存在する場合)。 ない場合は、この値を空の文字列のままにします。 - description パラメーターの詳細およびその他の重要な情報や役立つ情報。 - required : true または false |
connections |
はい。ただし、存在しない場合は空にすることができます。 | <connections-array> | ワークフロー テンプレートを使用して作成する接続。 各接続には、次のプロパティがあります。 - connectorId : コネクタ ID にはサフィックス _#workflowname# が必要です。 英数字、ハイフン、アンダースコアのみを使用し、次の形式に従います。<connector-ID>_#workflowname# コネクタ ID を見つけるには、「コネクタ ID を見つける」を参照してください。 - kind : コネクタのランタイム ホストの種類。組み込み操作とサービス プロバイダー コネクタの場合は inapp 、Azure でホストされるマネージド コネクタの場合は shared になります。 コネクタ ギャラリーでは、組み込み操作とサービス プロバイダー コネクタはアプリ内としてラベル付けされ、マネージド コネクタは共有としてラベル付けされます。 |
featuredConnections |
いいえ | <featured-connections-array> | 既定では、テンプレート ギャラリーには、各テンプレートで使用される Azure Logic Apps の事前構築済み操作とコネクタのアイコンが表示されます。 その他の操作のアイコンを含めるには、featuredConnections 属性を使用できます。 各操作には、次の属性が必要です。- kind : 操作の種類- type : 操作のタイプこれらの値を検索するには、featuredConnections の操作の種類とタイプを見つけるに関するセクションを参照してください。 |
コネクタ ID を見つける
manifest.json ファイル内の接続または workflow.json ファイル内の接続参照に使用するコネクタ ID を見つけるには、次の手順に従います:
Azure portal で、ロジック アプリ リソースを開きます。
ロジック アプリのメニューの [ワークフロー] で、[接続] を選択します。
[JSON ビュー] タブを選択します。
接続の種類に基づいて、次の手順に従います。
Azure でホストおよび実行されるマネージド "共有" API 接続の場合:
セクション
managedApiConnections
を探します。connection
属性で、id
値をコピーして保存しますが、サブスクリプション ID、リソース グループ名などの個人データや機密データは、#<item>#
に置き換えます。/subscriptions/#subscription#/providers/Microsoft.Web/locations/#location#/managedApis/<connection-name>
たとえば、次のテキストは SharePoint コネクタのコネクタ ID を示しています。
/subscriptions/#subscription#/providers/Microsoft.Web/locations/#location#/managedApis/sharepointonline
シングルテナントの Azure Logic Apps ランタイムでホストされているサービス プロバイダー接続の場合:
セクション
serviceProviderConnections
を探します。接続ごとに、
serviceProvider
属性でid
属性を見つけます。次の値をコピーして保存します。
/serviceProviders/<connection-name>
たとえば、次のテキストは、Azure AI 検索コネクタのコネクタ ID を示しています。
/serviceProviders/azureaisearch
.
featuredConnections の操作プロパティ 'kind' と 'type' を見つける
manifest.json ファイルの featuredConnections
セクションには、Azure portal のテンプレート ギャラリーに含めるその他の操作のアイコンを含めることができます。 配列であるこのセクションでは、各操作に対して属性 kind
と type
を指定する必要があります。
これらの属性値を取得するには、Azure portal でワークフローを開いて、次の手順に従います。
ワークフローのメニューの [開発者] で、[コード] を選択します。
コード ビュー ウィンドウの
actions
セクションで、目的の操作を見つけて、kind
とtype
の値を見つけます。
GitHub リポジトリにテンプレート パッケージを追加する
Azure portal でテンプレート ギャラリーにテンプレートを公開するには、GitHub を設定し、検証と確認のためにテンプレート パッケージを使用して pull request を作成します。
GitHub アカウントを作成します (お持ちでない場合)。
詳細については、GitHub アカウントの概要に関するページを参照してください。
GitHub の Azure Logic Apps Logic の LogicAppsTemplates という名前のワークフロー テンプレート リポジトリに移動します。
独自の フォークを作成します。これは、GitHub の LogicAppsTemplates リポジトリのリモート コピーです。
詳細については、「Forking a repository」 (リポジトリのフォーク) を参照してください。
ローカルで作業するには、フォークをお使いのコンピューターにクローンします。
次の URL を持つフォークに移動します。
https://github.com/<your-username>/LogicAppsTemplates
お使いのローカル コンピューターで、GitHub という名前のフォルダーを作成します (まだない場合)。 OneDrive 同期済みフォルダーにはクローンしないでください。
ローカル リポジトリで、次の手順に従って、作業ブランチを作成します。
作業ブランチをチェックアウトしたら、ローカル リポジトリのルート レベルに移動し、テンプレート パッケージ フォルダーを作成します。
テンプレート ファイルをテンプレート パッケージ フォルダーに追加し、ルート レベルの manifest.json ファイルをフォルダー名で更新します。
ローカル リポジトリに変更をコミットする準備ができたら (これはスナップショットを保存するようなものです)、Git コマンドライン ツールまたはその他のツールを使用して、次のコマンドを実行します。
git add .
git commit -m "<commit-short-description>"
スナップショットをリモート フォークにアップロードするには、次のコマンドを実行します。
git push origin <your-working-branch>
GitHub で、<your-working-branch> を LogicAppsTemplates リポジトリのメイン ブランチと比較する pull request を作成します。
リポジトリの pull requests ページに移動し、[新しい pull request] を選択します。
[変更の比較] で、[フォーク間で比較] を選択します。
pull request に次の設定があることを確認し、[pull request の作成] を選択します。
ベース リポジトリ ベース ヘッド リポジトリ 比較 Azure/LogicAppsTemplates main <user-name>/LogicAppsTemplates <your-working-branch> pull request のタイトルと説明を入力します。 完了するには、[pull request の作成] を選択します。
Azure Logic Apps チームが pull request を確認するのを待ちます。
詳細については、「Creating a pull request from a fork」 (フォークからの pull request の作成) を参照してください。
名前とスタイルの規則
面グラフ | 規則 |
---|---|
機密データ | テンプレート ファイル、スクリーンショット、説明、テスト データに個人データと機密データを含めたり、アップロードしたりしないでください。 たとえば、このデータには、サブスクリプション ID、ユーザー名、パスワードなどが含まれます。 |
フォルダー名 | 読みやすくするために、可能な場合は小文字とハイフンを使用します。 Microsoft スタイル ガイド – 大文字化を参照してください。 |
画像ファイル名 | ファイル名拡張子として .png を使用し、小文字とハイフンを使用します (例: workflow-light.png)。 |
製品、サービス、テクノロジ、ブランドの名前 | 公式のスペルと大文字に従ってください。 例: - サービス名またはプラットフォームを参照する場合は、"Logic Apps" ではなく "Azure Logic Apps" を使用します。 - リソースまたはインスタンスを参照する場合は、"Logic App" または "Logic Apps" ではなく、"ロジック アプリ" を使用します。 - トリガーとアクションのシーケンスを参照する場合は、"ロジック アプリ ワークフロー" または "ワークフロー" を使用します。 |
省略形と頭字語 | 製品、サービス、テクノロジ、ブランドの名前や、一般的でない技術用語には、省略形や頭字語ではなく、正式名称を使用します。 "HTTP" や "URL" などの一般的な頭字語は許容されます。 たとえば、"VS Code" ではなく "Visual Studio Code" を使用します。 Microsoft スタイル ガイド – 頭字語を参照してください。 |
その他のテキスト | - タイトル、見出し、本文コンテンツにはセンテンス ケースを使用します。つまり、製品、サービス、テクノロジ、またはブランドの名前がある場合を除き、最初の文字のみを大文字にします。 - 一般的な名詞や冠詞 ("a"、"an"、"and"、"or"、"the"など) は大文字にしないでください。 |
音声 | - 特定の役割に言及する必要がある場合を除き、三人称 (ユーザー、開発者、顧客) ではなく二人称 (あなた、あなたの) を使用します。 Microsoft スタイル ガイド – 人物を参照してください。 - 可能な場合は、能動的かつ直接的でありながらも親しみやすいトーンを使用します。 能動態はテキストの主語と動詞に焦点を当て、受動態はテキストの目的語に焦点を当てます。 |
ボキャブラリ | - "利用する" や "活用する" ではなく、"使う" のようなシンプルで日常的な単語を使用します。 - 言語間でうまく翻訳できない単語、フレーズ、専門用語、口語表現、慣用句、俗語は使用しないでください。 - "してください" は特定のシナリオでのみ使用します。 Microsoft スタイル ガイド – してくださいを参照してください。 - "e.g." や "i.e" ではなく、"例" または "など" を使用します。 - "ここ"、"上"、"下"、"右"、"左" などの方向を示す用語は、アクセシビリティに配慮していないため使用しないでください。 |
句読点 | - 項目の列挙では、接続詞 ("および" など) の前に最後のコンマを含めます。 例: "リンゴ、オレンジ、およびバナナ"。 Microsoft スタイル ガイド - コンマを参照してください。 - 完全な文の最後には適切な句読点を付けます。 感嘆符は使用しないでください。 Microsoft スタイル ガイド – 句読点を参照してください。 |
書式設定 | - コードの場合は、そのコードの言語のスタイル規則に従います。 - URL が変更されるとリンクが壊れるため、ハードコーディングされたリンクは使用しないでください。 pull request で、代わりに使用するリダイレクト リンクを要求します。 - リンクには、次の形式を使用します。 " For more information, see [descriptive-link-text](URL)] ."。 - " See [here](URL) 。" などの一般的または漠然としたリンク テキストではなく、説明的なリンク テキストを使用します。- 番号は手順内のステップにのみ使用し、特定の順序のないリストには使用しないでください。 Microsoft スタイル ガイド - リストを参照してください。 - コードをインデントしない限り、句読点の後にはスペースを 1 つだけ使用します。 |
詳細なガイダンスについては、Microsoft スタイル ガイドとグローバルなライティングのヒントに関するページ参照してください。