シングルテナント Azure Logic Apps で Standard ロジック アプリの SQL データベース ストレージを設定する (プレビュー)
適用対象: Azure Logic Apps (Standard)
重要
この機能はプレビュー段階にあり、「Microsoft Azure プレビューの追加使用条件」が適用されます。
シングルテナント Azure Logic Apps、App Service Environment v3、または Azure の外部で実行するワークフローを作成するためにロジック アプリ (Standard) リソースの種類を選ぶ場合、ワークフロー関連の成果物、状態、ランタイム データを保存するための Azure Storage アカウントも作成する必要があります。 ただし、ロジック アプリのワークフローのランタイム環境、スループット、スケーリング、パフォーマンス、管理をより柔軟に制御する必要がある場合は、ワークフロー関連のストレージ トランザクションに Azure Storage ではなく、SQL ストレージ プロバイダーを使用できます。
この記事では、Azure Storage の代替手段として SQL ストレージを Azure Logic Apps のプライマリ ストレージ プロバイダーとして使用する理由の概要を示し、Azure portal でのロジック アプリの作成時または Visual Studio Code からのロジック アプリのデプロイ時にストレージ使用のために SQL を設定する方法について説明します。
ロジック アプリを初めて使用する場合は、次のドキュメントを参照してください。
SQL を使用する理由
シングルテナント Azure Logic Apps で使用できる代替のストレージ オプションとして、SQL には次のような利点があります。
特長 | 説明 |
---|---|
移植性 | SQL には、仮想マシン、サービスとしてのプラットフォーム (PaaS)、コンテナーなど、さまざまなフォーム ファクターがあります。 ロジック アプリ ワークフローを実行する可能性のあるほとんどすべての場所で SQL データベースを実行できます。 |
制御 | SQL では、特定の期間または特定のワークロードについて、データベースのスループット、パフォーマンス、スケーリングをきめ細かく制御できます。 SQL の料金は CPU 使用率とスループットに基づいています。これにより、各操作に基づいてコストがかかる Azure Storage よりも料金が予測しやすくなります。 |
既存の資産の利用 | Microsoft のツールを使い慣れている場合は、SQL との最新の統合にその資産を使用できます。 Azure ハイブリッド特典を使用すると、従来のオンプレミス デプロイと最新のクラウド実装全体で資産を再利用できます。 また SQL には、SQL Server Management Studio (SSMS)、コマンド ライン インターフェイス、SDK など、成熟した、十分なサポートを受けられるツールも用意されています。 |
コンプライアンス | SQL には、冗長性を持つバックアップ、復元、フェールオーバー、ビルドのためのオプションが Azure Storage よりも多く用意されています。 ロジック アプリのストレージには、他のエンタープライズ アプリケーションと同じエンタープライズ レベルのメカニズムを適用できます。 |
どのような場合に SQL を使用するか
次の表では、SQL の使用を検討する必要があるいくつかの理由について説明します。
シナリオ | ストレージ プロバイダーの推奨 |
---|---|
Azure でロジック アプリのワークフローを実行する際に、ストレージのスループットとパフォーマンスをより細かく制御する必要がある。 | Azure Storage にはスループットとパフォーマンスを微調整するためのツールが用意されていないため、ストレージ プロバイダーとして SQL を使用します。 |
オンプレミスでロジック アプリのワークフローを実行する必要がある。これは、Azure Arc 対応 Logic Appsで実行できます。 | SQL をストレージ プロバイダーとして使用して、SQL データベースをホストする場所 (オンプレミス、仮想マシン、コンテナー、マルチクラウドなど) を選択できるようにします。 統合するシステムの近くでロジック アプリ ワークフローを実行するか、クラウドへの依存を減らすことを検討してください。 |
ストレージ コストを予測できる必要がある。 | スケーリング コストをより細かく制御する場合は、ストレージ プロバイダーとして SQL を使用します。 SQL のコストは、1 秒あたりの計算と入力出力の各操作 (IOPS) に基づいています。 Azure Storage のコストは操作の数に基づいており、ゼロにスケーリングされる小規模なワークロードに適している場合があります。 |
Azure Storage ではなく SQL を使用したい。 | SQL は、よく知られた信頼性の高いエコシステムであり、ロジック アプリの運用全体に同じガバナンスと管理を適用するために使用できます。 |
既存の SQL 環境を再利用する必要がある。 | 再利用する、またはクラウドで最新化する SQL ライセンスを既に所有している場合は、ストレージ プロバイダーとして SQL を使用します。 また、ロジック アプリの統合に Azure ハイブリッド特典を使用することもできます。 |
その他すべて | 既定のストレージ プロバイダーとして Azure Storage を使用します。 |
前提条件
Azure アカウントとアクティブなサブスクリプション。 お持ちでない場合は、無料アカウントにサインアップしてください。
ロジック アプリで使用する SQL 環境。 ただし、環境をセットアップする前に、次の手順を実行してください。
SQL Server インスタンスを作成する。
サポートされる種類には、SQL Server、Azure SQL データベース、Azure SQL Managed Instance などがあります。
サポートされている種類のいずれかを使用して SQL サーバーが Azure でホストされている場合は、次のアクセス許可を設定する必要があります。
Azure portal で、使用する SQL サーバー リソースに移動します。
リソースのナビゲーション メニューの [セキュリティ] で、 [ファイアウォールと仮想ネットワーク] を選択します。
開いたウィンドウの [Azure サービスおよびリソースにこのサーバーへのアクセスを許可する] で [はい] を選択します
変更を保存します。
SQL サーバーが Azure でホストされていない場合は、サーバー上のファイアウォールまたはネットワークの設定で、Azure のサービスとリソースがサーバーとデータベースにアクセスできるようになっていることを確認します。
ローカル開発に SQL Express を使用している場合は、既定の名前付きインスタンス
localhost\SQLExpress
に接続します。
既存のデータベースを作成または使用します。
SQL ストレージ プロバイダーを設定するには、使用可能なデータベースが必要です。
ここで、この記事の手順に従って SQL 環境をセットアップできます。
ローカル開発の場合、ローカル コンピューターにインストールされている Visual Studio Code。
注意
必ず Microsoft インストーラー (MSI) バージョン (
func-cli-X.X.XXXX-x*.msi
) を使用して Azure Functions Core Tools の最新バージョンをインストールし、SQL がサポートされるようにします。 Visual Studio Code のインストール要件の詳細については、「Visual Studio Code でシングルテナント Azure Logic Apps (Standard) を使用して統合ワークフローを作成する」をご覧ください。
SQL 環境をセットアップする
SQL ストレージ プロバイダーを設定する前に、「前提条件」で必要な手順を完了してください。
SQL サーバーのアクセス許可を設定します。
現時点では、SQL ストレージ プロバイダーは、接続文字列での SQL 認証をサポートしています。 ローカルの開発とテストには Windows 認証を使用することもできます。 現時点では、Microsoft Entra ID とマネージド ID のサポートは利用できません。
対象の SQL データベースでワークフロー関連の成果物を作成および管理するアクセス許可を持つ ID を使用する必要があります。 たとえば、管理者は、これらの成果物を作成して管理するために必要なすべてのアクセス許可を持っています。 次に、指定した SQL 接続文字列を使用して、シングルテナント Azure Logic Apps ランタイムが作成しようとする成果物の一覧を示します。 SQL 接続文字列で使用されている ID に、次の成果物を作成するために必要なアクセス許可があることを確認します。
- スキーマ
dt
、dc
、dq
の作成および削除。 - これらのスキーマのテーブルの追加、変更、削除。
- これらのスキーマのユーザー定義テーブル型の追加、変更、削除。
対象のアクセス許可の詳細については、データベース エンジンでの SQL サーバーのアクセス許可に関する記事を確認してください。
重要
ユーザー名やパスワードを含む接続文字列などの機密情報がある場合は必ず、利用可能な最も安全な認証フローを使用してください。 Microsoft では、可能な場合はマネージド ID を使用して Azure リソースへのアクセスを認証し、必要最小限の特権を持つロールを割り当てることをお勧めします。
この機能を使用できない場合は必ず、Azure Key Vault など、アプリ設定で使用できる他の手段を使用して接続文字列をセキュリティで保護してください。 これで、接続文字列やキーなど、セキュリティで保護された文字列を直接参照できます。 デプロイ時に環境変数を定義できる ARM テンプレートと同様に、ロジック アプリのワークフロー定義内でアプリ設定を定義できます。 その後、動的に生成されたインフラストラクチャ値 (接続エンドポイント、ストレージ文字列など) を取得できます。 詳細については、「Microsoft ID プラットフォームのアプリケーションの種類」を参照してください。
- スキーマ
SQL に接続する
SQL データベースで、開発に必要なアクセスが許可されていることを確認します。
Azure SQL データベースを使用している場合は、次の要件を満たす必要があります。
ローカルの開発とテストの場合は、ローカル コンピューターの IP アドレスからの接続を明示的に許可します。 Azure SQL Server で IP ファイアウォール規則を設定できます。
Azure portal で、Azure サービスを許可することで、指定された接続文字列でロジック アプリ リソースによる SQL データベースへのアクセスを許可します。
シナリオに応じて、他の SQL データベースのネットワーク アクセス制御を設定します。
Azure SQL Managed Instance を使用している場合は、Azure サービス (
logicapp
) がセキュリティで保護されたパブリック エンドポイントを介して SQL データベースに接続できるようにします。
Azure portal で作成中に SQL を設定する
Azure でロジック アプリ (Standard) リソースの種類を使用してロジック アプリを作成する場合は、ストレージ プロバイダーとして SQL を設定できます。
Azure portal で、Azure アカウントを使ってサインインします。
Azure portal の検索ボックスに「
logic apps
」と入力し、logic apps
を選択します。[ロジック アプリ] ページで [追加] を選択します。
[ロジック アプリの作成] ページの [基本] タブで、ロジック アプリ リソースに関する次の情報を入力します。
プロパティ 必要 値 説明 サブスクリプション はい <Azure サブスクリプション名> ロジック アプリに使用する Azure サブスクリプション。 リソース グループ はい <Azure リソース グループ名>< ロジック アプリと関連リソースを作成する Azure リソース グループ。 このリソース名は、リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、ピリオド (.) のみを含めることができます。 この例では、
Fabrikam-Workflows-RG
という名前のリソース グループを作成します。Type はい Standard このロジック アプリ リソースの種類は、シングルテナント Azure Logic Apps 環境で実行され、Standard 使用、課金、価格モデルを使用します。 ロジック アプリ名 はい <ロジック アプリ名> ロジック アプリに使用する名前。 このリソース名は、リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、ピリオド (.) のみを含めることができます。 この例では、
Fabrikam-Workflows
という名前のロジック アプリを作成します。注: ロジック アプリの名前には自動的にサフィックス
.azurewebsites.net
が付けられます。これは、ロジック アプリ (Standard) リソースは、Azure Functions の機能拡張モデルを使用し、Azure Functions ランタイムの拡張機能としてホストされているシングルテナント Azure Logic Apps ランタイムで実行されるためです。 Azure Functions では、同じアプリの名前付け規則が使用されます。発行 はい <デプロイ環境> ロジック アプリのデプロイ先。 既定では、シングル テナント Azure Logic Apps にデプロイするためのワークフローが選択されています。 Azure により、最初のワークフローを追加する必要がある空のロジック アプリ リソースが作成されます。 注: 現時点では、Docker コンテナー オプションを使用するには Azure Arc enabled Kubernetes クラスター上に カスタムの場所 が必要です。これは、Azure Arc enabled Logic Apps (プレビュー) で使用できます。 ロジック アプリのリソースの場所、カスタムの場所、クラスターはすべて同じである必要があります。
[リージョン] はい <Azure-region> リソース グループやリソースを作成する際に使用する場所です。 この例では、サンプル ロジック アプリを Azure にデプロイし、米国西部を使用します。 - [Docker コンテナー] を選択した場合は、カスタムの場所を選択します。
- あらかじめ存在している必要がある ASEv3 リソースにデプロイするには、[リージョン] の一覧からその環境リソースを選択します。
次の例は、 [ロジック アプリの作成] ページの [基本] タブを示しています。
準備ができたら、 [次へ: ホスティング] を選択します。 [ホスティング] タブで、ロジック アプリに使用するストレージ ソリューションとホスティング プランに関する情報を指定します。
プロパティ 必要 値 説明 ストレージの種類 はい SQL と Azure Storage ワークフロー関連の成果物およびデータに使用するストレージの種類。 - 以前にリージョンとしてカスタムの場所を選択した場合は、 [SQL] を選択します。
-以前に Azure リージョンまたは ASEv3 の場所を選択した場合は、 [SQL と Azure Storage] を選択します。
注: Azure リージョンにデプロイする場合は、引き続き Azure Storage アカウントが必要です。これは、Azure Logic Apps プラットフォームでロジック アプリの構成の 1 回限りのホスティングを完了するために使用されます。 ワークフローの定義、状態、実行履歴、およびその他のランタイム成果物は、SQL データベースに格納されます。
Azure Arc クラスターでホストされているカスタムの場所へのデプロイでは、ストレージ プロバイダーとして SQL のみが必要です。
ストレージ アカウント はい <Azure-storage-account-name> ストレージ トランザクションに使用する Azure ストレージ アカウント。 このリソース名は、リージョン間で一意であり、数字と小文字のみを含む 3 から 24 文字である必要があります。 既存のアカウントを選択するか、新しいアカウントを作成します。
この例では、
fabrikamstorageacct
という名前のストレージ アカウントを作成します。SQL 接続文字列 はい <sql-connection-string> SQL の接続文字列。現時点では、SQL 認証のみがサポートされ、OAuth およびマネージド ID 認証はサポートされていません。 注: Azure portal ではこの文字列が検証されないため、正しい接続文字列を入力してください。
[プランの種類] はい <hosting-plan> ロジック アプリのデプロイに使用するホスティング プラン。 詳細については、「ホスティング プランと価格レベル」を参照してください。
Windows プラン はい <plan-name> 使用するプラン名。 既存のプラン名を選択するか、新しいプランの名前を指定します。 この例では、
Fabrikam-Service-Plan
という名前を使用しています。SKU とサイズ はい <pricing-tier> ロジック アプリに使用する価格レベル。 選択した内容は、ロジック アプリとワークフローで使用する料金、コンピューティング、メモリ、およびストレージに影響します。 既定の価格レベルを変更するには、 [サイズの変更] を選択します。 その後、必要なワークロードに基づいて、他の価格レベルを選択できます。
詳細については、「ホスティング プランと価格レベル」を参照してください。
次の例は、 [ロジック アプリの作成] ページの [ホスティング] タブを示しています。
「Azure portal でシングルテナント Azure Logic Apps (Standard) を使用して統合ワークフローを作成する」の残りの作成手順を完了します。
完了すると、新しいロジック アプリのリソースとワークフローが Azure で有効になり、SQL データベースがストレージ プロバイダーとして使用されます。
Visual Studio Code でローカル開発用に SQL を設定する
次の手順では、Visual Studio Code でローカルの開発とテストを行うためのストレージ プロバイダーとして SQL を設定する方法を示します。
シングルテナント Azure Logic Apps で動作するように開発環境を設定します。
Azure Logic Apps (Standard) 拡張機能がインストールされた Visual Studio Code で作業するための前提条件を満たします。
Azure Logic Apps (Standard) 拡張機能と連携するように Visual Studio Code を設定します。
Visual Studio Code で、Azure アカウントに接続し、空のロジック アプリ プロジェクトを作成します。
Visual Studio Code で、[エクスプローラー] ウィンドウを開きます (まだ開いていない場合)。
[エクスプローラー] ウィンドウのロジック アプリ プロジェクトのルートで、すべてのファイルとフォルダーの下にある空白の領域の上にマウス ポインターを移動し、ショートカット メニューを開いて、 [Use SQL storage for your Logic App project](ロジック アプリ プロジェクトに SQL ストレージを使用する) を選択します。
プロンプトが表示されたら、SQL 接続文字列を入力します。 ローカル SQL Express インスタンスまたはその他の SQL データベースを使用することを選択できます。
確認後、Visual Studio Code によりプロジェクトの local.settings.json ファイルに次の設定が作成されます。 この設定はいつでも更新できます。
Visual Studio Code からのデプロイ中に SQL を設定する
Visual Studio Code から Azure にロジック アプリ プロジェクトを直接発行することができます。 このアクションにより、ロジック アプリ (Standard)リソースの種類を使用して、ロジック アプリ プロジェクトがデプロイされます。
Azure で新しいロジック アプリ (Standard) リソースとしてプロジェクトを発行し、ストレージ プロバイダーとして SQL を使用する場合は、アプリを発行するときに SQL 接続文字列を入力します。 完全な手順については、新しいロジック アプリのデプロイのための SQL の設定に関する記事を参照してください。
SQL の設定が既に完了している場合は、Azure に既にデプロイされているロジック アプリ (Standard) リソースにロジック アプリ プロジェクトを発行できます。 このアクションにより、既存のロジック アプリが上書きされます。
注意
ローカルの SQL Express は、Azure にデプロイおよびホストされているロジック アプリでは機能しません。
新しいロジック アプリ (Standard) リソースのデプロイ用に SQL を設定する
Visual Studio Code のアクティビティ バーで、Azure アイコンを選択します。
[Azure:Logic Apps (Standard)] ウィンドウのツールバーで、 [ロジック アプリにデプロイする] を選択します。
プロンプトが表示される場合は、ロジック アプリのデプロイに使用する Azure サブスクリプションを選択します。
Visual Studio Code で開いた一覧から、 [Create new Logic App (Standard) in Azure Advanced](Azure Advanced で新しいロジック アプリ (Standard) を作成する) の詳細オプションを選択してください。 それ以外の場合、SQL 設定するダイアログは表示されません。
ダイアログが表示されたら、新しいロジック アプリのグローバルに一意の名前を指定します。これは、ロジック アプリ (Standard) リソースに使用する名前です。 この例では、
Fabrikam-Workflows-App
を使用します。ロジック アプリの場所を選びます。 入力を開始して一覧をフィルター処理することもできます。
Azure にデプロイするには、デプロイ先の Azure リージョンを選びます。 以前に App Service Environment v3 (ASEv3) リソースを作成済みで、そこにデプロイする場合は、ASEv3 を選びます。
Azure Arc 対応 Logic Apps にデプロイするには、以前に構成したカスタムの場所を選びます。
次の例は、米国西部にフィルター処理された場所の一覧を示しています。
新しいロジック アプリのホスティング プランの種類を選びます。
アプリの場所として ASEv3 を選んだ場合は、 [App Service プラン] を選び、使用する ASEv3 リソースを選びます。 そうでない場合は、 [ワークフロー Standard] を選びます。
プランの名前を作成するか、既存のプランを選択します。
この例では、使用できる既存のプランがないため、[新しい App Service プランの作成] を選びます。
ホスティング プランの名前を入力して、選択したプランの価格レベルを選択します。
詳細については、「ホスティング プランと価格レベル」を参照してください。
Azure リソース グループのダイアログが表示されたら、最適なパフォーマンスを得るために、プロジェクトと同じ Azure リソース グループをデプロイ用に選びます。
注意
別のリソース グループを作成したり、使用したりすることはできますが、パフォーマンスに影響を与える可能性があります。 別のリソース グループを作成または選択した場合、確認プロンプトが表示された後にキャンセルすると、デプロイも取り消されます。
ロジック アプリのストレージ アカウントを選ぶダイアログが表示されたら、次のいずれかのオプションを選択します。
前にカスタムの場所を選択した場合は、 [SQL] オプションを選びます。
Azure にデプロイする場合は、 [SQL と Azure Storage] オプションを選びます。
注意
このオプションは、Azure デプロイでのみ必要です。 Azure では、Azure Logic Apps プラットフォームでロジック アプリの構成の 1 回限りのホスティングを完了するために、Azure Storage が必要です。 進行中のワークフローの状態、実行履歴、およびその他のランタイム成果物は、SQL データベースに格納されます。
Azure Arc クラスターでホストされているカスタムの場所へのデプロイでは、ストレージ プロバイダーとして SQL のみが必要です。
ダイアログが表示されたら、 [新しいストレージ アカウントを作成する] または既存のストレージ アカウント (使用可能な場合) を選びます。
SQL ストレージの確認プロンプトで [はい] を選びます。 接続文字列のプロンプトで、SQL 接続文字列を入力します。
注意
Visual Studio Code ではこの文字列が検証されないため、正しい接続文字列を入力してください。
「新しいロジック アプリ (Standard) リソースに発行する」の残りのデプロイ手順を完了します。
完了すると、新しいロジック アプリのリソースとワークフローが Azure で有効になり、SQL データベースがストレージ プロバイダーとして使用されます。
デプロイの検証
ロジック アプリ (Standard) リソースを Azure にデプロイした後、設定が正しいかどうかを確認できます。
Azure portal で、ロジック アプリ リソースを開きます。
リソースのナビゲーション メニューで、 [設定] の下にある [構成] を選びます。
[構成] ウィンドウの [アプリケーション設定] で、Workflows.Sql.ConnectionString アプリ設定を探し、SQL 接続文字列が表示されており、かつ正しいことを確認します。
SQL 環境で、スキーマ名が 'dt' と 'dq' で始まる SQL テーブルが作成されていることを確認します。
たとえば、次のスクリーンショットは、単一のワークフローを持つロジック アプリ リソースに対してシングルテナント Azure Logic Apps ランタイムにより作成されたテーブルを示しています。
シングルテナント Azure Logic Apps サービスでは、ユーザー定義テーブル型も作成されます。 たとえば、次のスクリーンショットは、単一のワークフローを持つロジック アプリ リソースに対してシングルテナント Azure Logic Apps ランタイムにより作成されたユーザー定義テーブル型を示しています。