クラウド リソースをプロビジョニングする

TeamsFx は Azure と Microsoft 365 クラウドと統合されており、1 つのコマンドでアプリを Azure に配置できます。 TeamsFx は Azure Resource Manager (ARM) と統合されるため、アプリケーションでコード アプローチに必要な Azure リソースをプロビジョニングできます。

Microsoft Visual Studio Code で Teams Toolkit を使用してプロビジョニングする

Teams Toolkit for Visual Studio Code または TeamsFx CLI で 1 つのコマンドを使用して Azure リソースをプロビジョニングします。 詳細については、 Azure ベースのアプリをプロビジョニングする方法に関するページを参照してください。

リソースの作成

Teams Toolkit または TeamsFx CLI でプロビジョニング コマンドをトリガーすると、次のリソースを取得できます。

  • Microsoft 365 テナントの下のMicrosoft Azure Active Directory (Azure AD) アプリ。
  • Microsoft 365 テナントの Teams プラットフォームの Teams アプリの登録。
  • 選択した Azure サブスクリプションの Azure リソース。

新しいプロジェクトを作成するときに、Azure リソースも作成する必要があります。 ARM テンプレートは、すべての Azure リソースを定義し、プロビジョニング中に必要な Azure リソースを作成するのに役立ちます。 既存 のプロジェクトに新しい機能リソースを追加 すると、更新された ARM テンプレートに最新の変更が反映されます。

注:

Azure サービスでは、サブスクリプションにコストが発生します。 コスト見積もりの詳細については、「 価格計算ツール」を参照してください。

次の一覧は、さまざまな種類のアプリと Azure リソースのリソースの作成を示しています。

Teams タブ アプリのリソースの作成
Resource 用途 説明
Azure Storage タブ アプリをホストします。 タブ アプリをホストするための静的 Web アプリ機能を有効にします。
ユーザー割り当て ID Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

Teams ボットまたはメッセージ拡張機能アプリのリソース作成
Resource 用途 説明
Azure ボット サービス ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続します。
ボットの App Service プラン ボットの Web アプリをホストします。 ×
ボット用 Web アプリ ボット アプリをホストします。 - ユーザー割り当て ID を追加して、他の Azure リソースにアクセスします。
- TeamsFx SDK で必要なアプリ設定を追加します。
ユーザー割り当て ID Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

プロジェクト内のAzure Functionsのリソース作成
Resource 用途 説明
関数アプリの App Service プラン 関数アプリをホストします。 対象外
関数アプリ Azure Functions API をホストします。 - ユーザー割り当て ID を追加して、他の Azure リソースにアクセスします。
- クロスオリジン リソース共有 (CORS) ルールを追加して、タブ アプリからの要求を許可します。
- Teams アプリからの要求を許可する認証設定を追加します。
- TeamsFx SDK で必要なアプリ設定を追加します。
関数アプリ用の Azure ストレージ 関数アプリを作成する必要があります。 ×
ユーザー割り当て ID Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

プロジェクト内のAzure SQLのリソース作成
Resource 用途 説明
Azure SQL サーバー Azure SQL データベース インスタンスをホストします。 すべての Azure サービスがサーバーにアクセスできるようにします。
Azure SQL データベース アプリのデータを格納します。 ユーザー割り当て ID、読み取り、または書き込みアクセス許可をデータベースに付与します。
ユーザー割り当て ID Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

プロジェクトでの Azure API Managementのリソースの作成
Resource 用途
API 管理サービス用の Azure AD アプリ API 管理サービスによって管理される API に Microsoft Power Platform アクセスを許可します。
API 管理サービス 関数アプリでホストされている API を管理します。
API 管理製品 API をグループ化し、使用条件とランタイム ポリシーを定義します。
API 管理 OAuth サーバー Microsoft Power Platform が関数アプリでホストされている API にアクセスできるようにします。
ユーザー割り当て ID Azure サービス間要求を認証します。

プロジェクトに Azure Key Vaultを含めると作成されるリソース
リソース このリソースの目的
Azure Key Vault サービス 他の Azure サービスで使用されるシークレット (Azure AD アプリ クライアント シークレットなど) を管理します。
ユーザー割り当て ID Azure サービス間要求を認証します。

リソースのプロビジョニングをカスタマイズする

Teams Toolkit を使用すると、コードとしてのインフラストラクチャアプローチを使用して、プロビジョニングする Azure リソースと構成方法を定義できます。 Teams ツールキットでは、ARM テンプレートを使用して Azure リソースを定義します。 ARM テンプレートは、プロジェクトの bicep インフラストラクチャと構成を定義する一連のファイルです。 ARM テンプレートを変更することで、Azure リソースをカスタマイズできます。 詳細については、Bicep に関するドキュメントを参照してください。

ARM を使用したプロビジョニングには、次のファイル、パラメーター、テンプレートのセットを変更する必要があります。

  • パラメーターをテンプレートに渡すための、フォルダーにある .fx\configs ARM パラメーター ファイル (azure.parameters.{your_env_name}.json)。

  • にある ARM テンプレート ファイル templates\azureは、このフォルダーに次のファイルが含まれています。

    File 職務 カスタマイズを許可する
    main.bicep Azure リソース プロビジョニングのエントリ ポイントを提供します。 はい
    provision.bicep Azure リソースを作成して構成します。 はい
    config.bicep TeamsFx に必要な構成を Azure リソースに追加します。 はい
    provision\xxx.bicep によって provision.bicep使用される各 Azure リソースを作成して構成します。 はい
    teamsfx\xxx.bicep によって使用される各 Azure リソースに TeamsFx に必要な構成を config.bicep追加します。 いいえ

注:

リソースまたは機能をプロジェクトに追加すると、 teamsfx\xxx.bicep 再生成され、同じものをカスタマイズすることはできません。 ファイルを bicep 変更するには、Git を使用してファイルに対する変更を teamsfx\xxx.bicep 追跡できます。これは、リソースや機能の追加中に変更を失わないのに役立ちます。

Azure AD パラメーター

ARM テンプレート ファイルでは、パラメーターにプレースホルダーが使用されます。 プレースホルダーの目的は、新しい環境で新しいリソースを確実に作成することです。 実際の値は .fx\states\state.{env}.json ファイルから解決されます。

パラメーターには次の 2 種類があります。

パラメーター名 既定値プレースホルダー プレースホルダーの意味 カスタマイズする方法
Microsoft 365 ClientId {{state.fx-resource-aad-app-for-teams.clientId}} アプリの Azure AD アプリ クライアント ID は、プロビジョニング中に作成されます。 ボットに既存の Azure AD アプリを使用します
Microsoft 365 ClientSecret {{state.fx-resource-aad-app-for-teams.clientSecret}} アプリの Azure AD アプリ クライアント シークレットは、プロビジョニング中に作成されます。 Teams アプリに既存の Azure AD アプリを使用します
Microsoft 365 TenantId {{state.fx-resource-aad-app-for-teams.tenantId}} アプリの Azure AD アプリのテナント ID。 Teams アプリに既存の Azure AD アプリを使用します
Microsoft 365 OAuthAuthorityHost {{state.fx-resource-aad-app-for-teams.oauthHost}} アプリの Azure AD アプリの OAuth 機関ホスト。 Teams アプリに既存の Azure AD アプリを使用します
botAadAppClientId {{state.fx-resource-bot.botId}} プロビジョニング中に作成されたボットの Azure AD アプリ クライアント ID。 ボットに既存の Azure AD アプリを使用します
botAadAppClientSecret {{state.fx-resource-bot.botPassword}} ボットの Azure AD アプリ クライアント シークレットは、プロビジョニング中に作成されます。 ボットに既存の Azure AD アプリを使用します
パラメーター名 既定値プレースホルダー プレースホルダーの意味 カスタマイズする方法
azureSqlAdmin {{state.fx-resource-azure-sql.admin}} プロビジョニング中に指定したサーバー管理者アカウントをAzure SQLします。 プレースホルダーを削除し、実際の値を入力します。
azureSqlAdminPassword {{state.fx-resource-azure-sql.adminPassword}} プロビジョニング中に指定したサーバー管理者パスワードをAzure SQLします。 プレースホルダーを削除し、実際の値を入力します。

パラメーター ファイル内の参照環境変数

値がシークレットの場合、パラメーター ファイルにハードコーディングする必要はありません。 パラメーター ファイルでは、環境変数からの値の参照がサポートされています。 ツールのパラメーター値の構文 {{$env.YOUR_ENV_VARIABLE_NAME}} を使用して、現在の環境変数を解決できます。

次の例では、 環境変数から パラメーターの mySelfHostedDbConnectionString 値を DB_CONNECTION_STRING読み取ります。

...
    "mySelfHostedDbConnectionString": "{{$env.DB_CONNECTION_STRING}}"
...

ARM テンプレート ファイルをカスタマイズする

定義済みのテンプレートがアプリの要件を満たしていない場合は、フォルダーの下 templates\azure にある ARM テンプレートをカスタマイズできます。 たとえば、ARM テンプレートをカスタマイズして、アプリ用の追加の Azure リソースを作成できます。 ARM テンプレートの作成に使用される bicep 言語の基本的な知識が必要です。 bicep ドキュメントで bicep の使用を開始できます。

注:

ARM テンプレートは、すべての環境で共有されます。 プロビジョニング動作が環境によって異なる場合は、 条件付きデプロイ を使用できます。

TeamsFx ツールが適切に機能するようにするには、次の要件を満たす ARM テンプレートをカスタマイズします。

注:

他のツールを使用してさらなる開発を行う場合は、これらの要件を無視できます。

  • フォルダー構造とファイル名が変更されていないことを確認します。 プロジェクトにリソースまたは機能をさらに追加すると、既存のファイルに新しいコンテンツが追加されることがあります。
  • 自動生成されたパラメーターとそのプロパティ名の名前が変更されていないことを確認します。 自動生成されたパラメーターは、プロジェクトにリソースまたは機能をさらに追加するときに使用できます。
  • 自動生成された ARM テンプレートの出力が変更されていないことを確認します。 ARM テンプレートにさらに出力を追加できます。 出力は であり .fx\states\state.{env}.json 、マニフェスト ファイルのデプロイや検証など、他の機能で使用できます。

Teams アプリをカスタマイズする

自分で作成した Azure AD アプリを使用するように構成スニペットを追加することで、ボットまたは Teams アプリをカスタマイズできます。 Teams アプリをカスタマイズするには、次の方法を実行します。

Teams アプリに既存の Azure AD アプリを使用する

次の構成スニペットをファイルに追加して .fx\configs\config.{env}.json 、Teams アプリ用に作成された Azure AD アプリを使用し、Azure AD アプリを作成するには、 TeamsFx プロジェクトで既存の Azure AD アプリを使用する方法を参照してください。

"auth": {
    "clientId": "<your Azure AD app client id>",
    "clientSecret": "{{$env.ENV_NAME_THAT_STORES_YOUR_SECRET}}",
    "objectId": "<your Azure AD app object id>",
    "accessAsUserScopeId": "<id of the access_as_user scope>"
}

スニペットを追加した後、Teams ツールキットの関連する環境変数にクライアント シークレットを追加して、プロビジョニング中に実際のクライアント シークレットを解決します。

注:

複数の環境で同じ Azure AD アプリを共有しないようにしてください。 Azure AD アプリを更新するアクセス許可がない場合は、Azure AD アプリを手動で更新する方法に関する警告が表示されます。 手順に従って、プロビジョニング後に Azure AD アプリを更新します。

ボットに既存の Azure AD アプリを使用する

次の構成スニペットをファイルに .fx\configs\config.{env}.json 追加して、ボット用に作成された Azure AD アプリを使用できます。

"bot": {
    "appId": "<your Azure AD app client id>",
    "appPassword": "{{$env.ENV_NAME_THAT_STORES_YOUR_SECRET}}"
}

スニペットを追加した後、Teams Toolkit の関連環境変数にクライアント シークレットを追加して、プロビジョニング中に実際のクライアント シークレットを解決します。

注:

構成スニペットをファイルに追加します .vscode/tasks.json 。 Teams Toolkit で生成されたプロジェクトには、ファイル内に定義済みの Visual Studio Code デバッグ タスクのセットがあります .vscode/tasks.json 。 これらの定義済みのタスクは、Teams Toolkit バージョン 4.1.0 以降によって生成されます。 デバッグ タスクをカスタマイズするためのファイルと、クラウド環境用のファイルを.fx\configs\config.{env}.json使用.vscode/tasks.jsonできます。

SQL データベースのユーザーの追加をスキップする

Teams Toolkit がユーザーを SQL データベースに追加しようとしたときにアクセス許可エラーが不十分な場合は、次の構成スニペットをファイルに追加して .fx\configs\config.{env}.json 、SQL データベース ユーザーの追加をスキップできます。

"skipAddingSqlUser": true

関数アプリ インスタンスの名前を指定する

既定の名前を使用 contosoteamsappapi する代わりに、関数アプリ インスタンスに使用できます。

注:

環境を既にプロビジョニングしている場合、名前を指定すると、前に作成したインスタンスの名前を変更するのではなく、新しい関数アプリ インスタンスを作成できます。

関数アプリ インスタンスの名前を指定するには、次の手順に従います。

  1. 現在の環境用に開きます .fx\configs\azure.parameters.{env}.json

  2. たとえば functionAppName 、 セクションの下に新しいプロパティを provisionParameters 追加します。

  3. の値 functionAppNameを入力します (例: contosoteamsappapi)。

  4. 最後のパラメーター ファイルは、次のスニペットに示されています。

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "provisionParameters": {
            "value": {
                "functionAppName": "contosoteamsappapi"
                ...
                }
            }
        }
    }
    

他の Azure リソースまたはストレージをアプリに追加するには、次のシナリオを検討してください。

Azure 関数バックエンドに Azure ストレージを追加して、BLOB データを格納します。 Azure Storage サポートを使用してテンプレートを bicep 更新する自動フローはありません。 ただし、ファイルを bicep 編集してリソースを追加することはできます。 次の手順を実行します。

  1. タブ プロジェクトを作成します。

  2. プロジェクトに関数を追加します。 詳細については、 リソースを追加する方法に関するページを参照してください。

  3. ARM テンプレートで新しいストレージ アカウントを宣言します。 リソースは、 で templates\azure\provision\function.bicep 直接宣言できます。 リソースは他の場所で宣言できます。

    var applicationStorageAccountName = 'myapp${uniqueString(resourceGroup().id)}'
    resource applicationStorageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
        name: applicationStorageAccountName
        location: resourceGroup().location
        kind: 'Storage'
        sku: {
            name: 'Standard_LRS'
        }
    }
    
  4. の Azure ストレージ接続文字列を使用して、Azure Functions アプリの設定をtemplates\azure\provision\function.bicep更新します。 リソースの配列に次のappSettingsスニペットをfunctionApp追加します。

    {
        name: 'MyAppStorageAccountConnectionString'
        value: 'DefaultEndpointsProtocol=https;AccountName=${applicationStorageAccount.name};AccountKey=${listKeys(applicationStorageAccount.id, '2021-06-01').keys[0].value}'
    }
    
  5. Azure ストレージ出力バインドを使用して関数を更新できます。

Visual Studio で Teams Toolkit を使用してプロビジョニングする

次の手順は、Visual Studio を使用してクラウド リソースをプロビジョニングするのに役立ちます。

Microsoft 365 アカウントにサインインする

  1. Visual Studio を開きます。

  2. Microsoft Teams アプリ プロジェクトを開きます。

  3. [ Project>Teams ツールキット>] [Teams アプリの依存関係の準備] の順に選択します

    Teams アプリの依存関係を準備する

  4. Microsoft 365 アカウントにサインインするには、[ サインイン... ] を選択します。

    Microsoft 365 にサインインする

    注:

    既に歌っている場合は、ユーザー名が表示されるか、[ アカウントの追加] オプションが表示されます。

  5. 既定の Web ブラウザーが開き、アカウントにサインインできます。

  6. アカウントにサインインしたら、[続行] を選択します。

    [続行] を選択して確認する

Azure アカウントにサインインする

  1. Visual Studio を開きます。

  2. Teams アプリ プロジェクトを開きます。

  3. [ProjectTeams ToolkitProvision in the cloud]\(クラウドの Project >Teams Toolkit> プロビジョニング\) を選択します。

    Azure アカウントにサインインする

  4. [サインイン...] を選択して、Azure アカウントにサインインします。

    Azure アカウントにサインインする

    注:

    既にサインインしている場合は、ユーザー名が表示されるか、[ アカウントの追加] オプションが表示されます。

    資格情報を使用して Azure アカウントにサインインすると、ブラウザーは自動的に閉じます。

クラウド リソースをプロビジョニングする方法

Visual Studio でプロジェクトを開いた後:

  1. [ProjectTeams ToolkitProvision in the cloud]\(クラウドの Project >Teams Toolkit> プロビジョニング\) を選択します。

    クラウドでのプロビジョニング

    [プロビジョニング ] ウィンドウが表示されます。

  2. リソースをプロビジョニングするには、次の詳細を入力します。

    1. ドロップダウン メニューから サブスクリプション名 を選択します。

    2. ドロップダウン メニューからリソース グループを選択するか、[新規作成]を選択して新しいリソース グループを作成できます。

    3. ドロップダウン メニューから [リージョン ] を選択します。

    4. [プロビジョニング] を選択します。

    リソース グループの選択

  3. 表示されるポップアップ ウィンドウで、[プロビジョニング] を選択 します

    プロビジョニングの警告

    プロビジョニング プロセスでは、Azure クラウドにリソースが作成されます。 Teams Toolkit の出力ウィンドウを観察することで、進行状況を監視できます。

  4. 表示されるポップアップ ウィンドウで、[ プロビジョニング済みリソースの表示 ] を選択して、プロビジョニングされたすべてのリソースを表示します。

    プロビジョニングされたリソースの表示

リソースを作成する

Teams ツールキットまたは TeamsFx CLI でプロビジョニング コマンドをトリガーすると、次のリソースを作成できます。

  • Microsoft 365 テナントの下のMicrosoft Azure Active Directory (Azure AD) アプリ。
  • Microsoft 365 テナントの Teams プラットフォームの Teams アプリの登録。
  • 選択した Azure サブスクリプションの Azure リソース。

新しいプロジェクトを作成するときに、Azure リソースも作成する必要があります。 ARM テンプレートは、すべての Azure リソースを定義し、プロビジョニング中に必要な Azure リソースを作成するのに役立ちます。

次の一覧は、さまざまな種類のアプリと Azure リソースのリソースの作成を示しています。

Teams タブ アプリのリソースの作成
Resource 用途 説明
アプリ サービス プラン タブの Web アプリをホストします。 対象外
アプリ サービス Blazor タブ アプリをホストします。 ×
ID を管理する Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

Teams メッセージ拡張機能アプリのリソースの作成
Resource 用途 説明
Azure ボット ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続します。
アプリ サービス プラン Web ボット アプリをホストします。 対象外
アプリ サービス ボット アプリをホストします。 他の Azure リソースにアクセスするためのユーザー割り当て ID を追加します。
ID を管理する Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

Teams コマンド ボット アプリのリソース作成
Resource 用途 説明
Azure ボット ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続します。
アプリ サービス プラン Web ボット アプリをホストします。 対象外
アプリ サービス ボット アプリをホストします。 他の Azure リソースにアクセスするためのユーザー割り当て ID を追加します。
ID を管理する Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

HTTP トリガー (Web API サーバー) アプリを使用した Teams 通知ボットのリソース作成
Resource 用途 説明
Azure ボット ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続します。
アプリ サービス プラン Web ボット アプリをホストします。 対象外
アプリ サービス ボット アプリをホストします。 他の Azure リソースにアクセスするためのユーザー割り当て ID を追加します。
マネージド ID Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。

HTTP トリガー (Azure Functions) アプリを使用した Teams 通知ボットのリソース作成
Resource 用途 説明
Azure ボット ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続する
ID を管理する Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。
ストレージ アカウント 関数アプリの作成に役立ちます。 対象外
アプリ サービス プラン 関数ボット アプリをホストします。 対象外
関数アプリ ボット アプリをホストします。 - ユーザー割り当て ID を追加して、他の Azure リソースにアクセスします。
- クロスオリジン リソース共有 (CORS) ルールを追加して、タブ アプリからの要求を許可します。
- Teams アプリからの要求のみを許可する認証設定を追加します。
- TeamsFx SDK で必要なアプリ設定を追加します。

タイマー トリガー (Azure Functions) アプリを使用した Teams 通知ボットのリソース作成
Resource 用途 説明
Azure ボット ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続します。
ID を管理する Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。
ストレージ アカウント 関数アプリの作成に役立ちます。 対象外
アプリ サービス プラン 関数ボット アプリをホストします。 対象外
関数アプリ ボット アプリをホストします。 - ユーザー割り当て ID を追加して、他の Azure リソースにアクセスします。
-クロスオリジン リソース共有 (CORS) ルールを追加して、タブ アプリからの要求を許可します。
- Teams アプリからの要求のみを許可する認証設定を追加します。
- TeamsFx SDK で必要なアプリ設定を追加します。

HTTP トリガー + タイマー トリガー (Azure Functions) アプリを使用した Teams 通知ボットのリソース作成
Resource 用途 説明
Azure ボット ボット フレームワークで、アプリをボットとして登録します。 ボットを Teams に接続します。
ID を管理する Azure サービス間要求を認証します。 さまざまな機能とリソース間で共有します。
ストレージ アカウント 関数アプリの作成に役立ちます。 対象外
アプリ サービス プラン 関数ボット アプリをホストします。 対象外
関数アプリ ボット アプリをホストします。 -他の Azure リソースにアクセスするためのユーザー割り当て ID を追加します。
-クロスオリジン リソース共有 (CORS) ルールを追加して、タブ アプリからの要求を許可します。
-Teams アプリからの要求のみを許可する認証設定を追加します。
-TeamsFx SDK で必要なアプリ設定を追加します。

リソースを管理する

Azure ポータルにサインインし、Teams ツールキットによって作成されたすべてのリソースを管理できます。

  • 既存の一覧または作成した新しいリソース グループからリソース グループを選択できます。
  • 選択したリソース グループの詳細は、目次の概要セクションで確認できます。

リソースのプロビジョニングをカスタマイズする

Teams Toolkit を使用すると、コードとしてのインフラストラクチャアプローチを使用して、プロビジョニングする Azure リソースを定義できます。 Teams ツールキットの構成は、要件に従って変更できます。

Teams ツールキットでは、ARM テンプレートを使用して Azure リソースを定義します。 ARM テンプレートは、プロジェクトの bicep インフラストラクチャと構成を定義する一連のファイルです。 ARM テンプレートを変更することで、Azure リソースをカスタマイズできます。 詳細については、Bicep に関するドキュメントを参照してください。

ARM を使用したプロビジョニングには、次のファイル、パラメーター、テンプレートのセットを変更する必要があります。

  • パラメーターをテンプレートに渡すための .fx\configs フォルダーにある ARM パラメーター ファイル (azure.parameters.{your_env_name}.json)。

  • templates\azure フォルダーにある ARM テンプレート ファイルには、次のファイルが含まれています。

    File 職務 カスタマイズを許可する
    main.bicep Azure リソース プロビジョニングのエントリ ポイントを提供します。 はい
    provision.bicep Azure リソースを作成して構成します。 はい
    config.bicep TeamsFx に必要な構成を Azure リソースに追加します。 はい
    provision\xxx.bicep によって provision.bicep使用される各 Azure リソースを作成して構成します。 はい
    teamsfx\xxx.bicep によって使用される各 Azure リソースに TeamsFx に必要な構成を config.bicep追加します。 いいえ

注:

リソースまたは機能をプロジェクトに追加すると、 teamsfx\xxx.bicep 再生成され、同じものをカスタマイズすることはできません。 Bicep ファイルを変更するには、Git を使用して teamsfx\xxx.bicep ファイルに対する変更を追跡できます。 これにより、プロジェクトにリソースや機能を追加するときに変更が失われることはありません。

ARM テンプレート ファイルでは、パラメーターにプレースホルダーが使用されます。 プレースホルダーの目的は、新しい環境で新しいリソースを作成できるようにすることです。 実際の値は .fx\states\state.{env}.json ファイルから解決されます。

パラメーター名 既定値プレースホルダー プレースホルダーの意味 カスタマイズする方法
Microsoft 365 ClientId {{state.fx-resource-aad-app-for-teams.clientId}} プロビジョニング中に作成されたアプリの Azure AD アプリ クライアント ID。 Teams アプリに既存の Azure AD アプリを使用します
Microsoft 365 ClientSecret {{state.fx-resource-aad-app-for-teams.clientSecret}} アプリの Azure AD アプリ クライアント シークレットは、プロビジョニング中に作成されます。 Teams アプリに既存の Azure AD アプリを使用します
Microsoft 365 TenantId {{state.fx-resource-aad-app-for-teams.tenantId}} アプリの Azure AD アプリのテナント ID。 Teams アプリに既存の Azure AD アプリを使用します
Microsoft 365 OAuthAuthorityHost {{state.fx-resource-aad-app-for-teams.oauthHost}} アプリの Azure AD アプリの OAuth 機関ホスト。 Teams アプリに既存の Azure AD アプリを使用します
botAadAppClientId {{state.fx-resource-bot.botId}} ボットの Azure AD アプリ クライアント ID は、プロビジョニング中に作成されます。 ボットに既存の Azure AD アプリを使用します
botAadAppClientSecret {{state.fx-resource-bot.botPassword}} ボットの Azure AD アプリ クライアント シークレットは、プロビジョニング中に作成されます。 ボットに既存の Azure AD アプリを使用します

パラメーター ファイル内の参照環境変数

値がシークレットの場合、パラメーター ファイルにハードコーディングする必要はありません。 パラメーター ファイルでは、環境変数からの値の参照がサポートされています。 Teams Toolkit のパラメーター値でこの構文 {{$env.YOUR_ENV_VARIABLE_NAME}} を使用して、現在の環境変数から解決できます。

次の例では、 環境変数から パラメーターの mySelfHostedDbConnectionString 値を DB_CONNECTION_STRING読み取ります。

...
    "mySelfHostedDbConnectionString": "{{$env.DB_CONNECTION_STRING}}"
...

ARM テンプレート ファイルをカスタマイズする

定義済みのテンプレートがアプリの要件を満たしていない場合は、フォルダーの下 templates\azure にある ARM テンプレートをカスタマイズできます。 たとえば、ARM テンプレートをカスタマイズして、アプリ用の追加の Azure リソースを作成できます。 ARM テンプレートの作成に使用される Bicep 言語の基本的な知識が必要です。

TeamsFx ツールが適切に機能するようにするには、次の要件を満たす ARM テンプレートをカスタマイズします。

  • フォルダー構造とファイル名が変更されていないことを確認します。 プロジェクトにリソースまたは機能をさらに追加すると、既存のファイルに新しいコンテンツが追加されることがあります。
  • 自動生成されたパラメーターの名前とそのプロパティ名がハングしないようにします。 自動生成されたパラメーターは、プロジェクトにリソースまたは機能をさらに追加するときに使用できます。
  • 自動生成された ARM テンプレートの出力が変更されていないことを確認します。 ARM テンプレートに出力をさらに追加できます。 出力は であり .fx\states\state.{env}.json 、マニフェスト ファイルのデプロイや検証など、他の機能で使用できます。

Teams アプリをカスタマイズする

ボットまたは Teams アプリをカスタマイズするには、Teams アプリ用に作成された Azure AD アプリを使用するように構成スニペットを追加します。 Teams アプリをカスタマイズするには、次の方法で実行します。

Teams アプリに既存の Azure AD アプリを使用する

次の構成スニペットをファイルに追加して .fx\configs\config.{env}.json 、Teams アプリ用に作成された Azure AD アプリを使用して Azure AD アプリ https://aka.ms/teamsfx-existing-aad-docを作成できます。

"auth": {
    "clientId": "<your Azure AD app client id>",
    "clientSecret": "{{$env.ENV_NAME_THAT_STORES_YOUR_SECRET}}",
    "objectId": "<your Azure AD app object id>",
    "accessAsUserScopeId": "<id of the access_as_user scope>"
}

スニペットを追加した後、Teams ツールキットの関連する環境変数にクライアント シークレットを追加して、プロビジョニング中に実際のクライアント シークレットを解決します。

注:

複数の環境で同じ Azure AD アプリを共有しないようにします。 Azure AD アプリを更新するアクセス許可がない場合は、Azure AD アプリを手動で更新する手順を含む警告が表示されます。 プロビジョニング後に Azure AD アプリを更新するには、この手順に従います。

ボットに既存の Azure AD アプリを使用する

次の構成スニペットをファイルに追加して .fx\configs\config.{env}.json 、ボット用に作成された Azure AD アプリを使用できます。

"bot": {
    "appId": "<your Azure AD app client id>",
    "appPassword": "{{$env.ENV_NAME_THAT_STORES_YOUR_SECRET}}"
}

スニペットを追加した後、Teams ツールキットの関連する環境変数にクライアント シークレットを追加して、プロビジョニング中に実際のクライアント シークレットを解決します。

SQL データベースのユーザーの追加をスキップする

Teams Toolkit が SQL データベースにユーザーを追加しようとしたときにアクセス許可が不十分なエラーが発生した場合は、次の構成スニペットをファイルに追加して、SQL データベース ユーザーの追加を .fx\configs\config.{env}.json スキップします。

"skipAddingSqlUser": true

関連項目