Partager via


Provisionner des ressources cloud dans Microsoft Visual Studio

TeamsFx s’intègre à Azure et au cloud Microsoft 365, ce qui permet de placer votre application dans Azure avec une seule commande. TeamsFx s’intègre à Azure Resource Manager (ARM), ce qui permet de provisionner les ressources Azure dont votre application a besoin pour l’approche du code.

Connectez-vous à votre compte Azure

  1. Ouvrez Visual Studio.

  2. Ouvrez le projet d’application Microsoft Teams.

  3. Sélectionnez Provisionner lekit de ressources> Project > Teamsdans le cloud.

    Capture d’écran montrant la connexion au compte Azure.

  4. Sélectionnez Se connecter...

    Capture d’écran montrant la connexion au compte Azure.

    Remarque

    Si vous êtes déjà connecté, votre nom d’utilisateur s’affiche ou vous avez la possibilité d’ajouter un compte.

    Une fois que vous êtes connecté à votre compte Azure à l’aide de vos informations d’identification, le navigateur se ferme automatiquement.

Provisionner des ressources cloud

Après avoir ouvert votre projet dans Visual Studio, pour provisionner des ressources cloud, procédez comme suit :

  1. Sélectionnez Provisionner lekit de ressources> Project > Teamsdans le cloud....

    Capture d’écran montrant comment provisionner dans le cloud.

    La fenêtre Provisionner s’affiche.

  2. Entrez les informations suivantes pour provisionner vos ressources :

    1. Sélectionnez votre nom d’abonnement dans le menu déroulant.
    2. Sélectionnez votre groupe de ressources dans le menu déroulant ou vous pouvez créer un groupe de ressources en sélectionnant Nouveau....
    3. Sélectionnez votre Région dans le menu déroulant.
    4. Sélectionnez Provisionner.

    Capture d’écran montrant la sélection du groupe de ressources.

  3. Dans la fenêtre contextuelle qui s’affiche, sélectionnez Provisionner.

    Capture d’écran montrant l’avertissement de provisionnement.

    Le processus d’approvisionnement crée des ressources dans le cloud Azure. Vous pouvez surveiller la progression en observant la fenêtre de sortie du Kit de ressources Microsoft Teams.

  4. Dans la fenêtre contextuelle qui s’affiche, pour afficher toutes les ressources approvisionnées, sélectionnez Afficher les ressources approvisionnées.

    Capture d’écran montrant les ressources approvisionnées.

Actions de provisionnement

Les actions suivantes sont conçues pour l’approvisionnement :

teamsApp/create

Si la variable d’environnement qui stocke l’ID d’application Teams est vide ou si l’ID d’application est introuvable dans le Portail des développeurs Teams, l’action teamsApp/create crée une application Teams. Il fonctionne sur l’application Teams dans le portail des développeurs Teams.

  - uses: teamsApp/create
    with: 
      # #required. Name of Teams app
      name: <your-preferred-app-name>
      # Write the information of created resources into environment file for the specified environment variable(s).
    writeToEnvironmentFile:
      # The id for Teams app
      teamsAppId: <your-preferred-env-var-name>

teamsApp/update

Lorsque vous appliquez le manifeste de l’application Teams à une application Teams existante dans le Portail des développeurs Teams. teamsApp/update l’action utilise l’ID d’application dans manifest.json fichier pour déterminer l’application Teams à mettre à jour. Il fonctionne sur l’application Teams dans le portail des développeurs Teams.

- uses: teamsApp/update
    with:
      # Required. Relative path to the yaml file. This is the path for built zip file.
      appPackagePath: <path-to-teams-app-package-file>

teamsApp/validateManifest

L’action teamsApp/validateManifest restitue le modèle de manifeste d’application Teams avec des variables d’environnement et valide le fichier manifeste de l’application Teams à l’aide de son schéma.

- uses: teamsApp/validateManifest
    with:
      # Required. Relative path to the yaml file. Path to Teams app manifest file
    manifestPath: <path-to-manifest-file>

teamsApp/validateAppPackage

L’action teamsApp/validateAppPackage valide le package d’application Teams à l’aide de règles de validation.

  - uses: teamsApp/validateAppPackage
      with:
      # Required. Relative path to the yaml file. This is the path for built zip file.
    appPackagePath: <path-to-teams-app-package-file>

teamsApp/zipAppPackage

L’action teamsApp/zipAppPackage affiche le modèle de manifeste d’application Teams avec des variables d’environnement et compresse le fichier manifeste avec deux icônes dans un fichier zip.

- uses: teamsApp/zipAppPackage
    with:
      # Required. Relative path to the yaml file. This is the path for Teams app manifest file. Environment variables in manifest will be replaced before apply to Microsoft Entra app.
    manifestPath: <path-to-manifest-file>
      # Required. Relative path to the yaml file. This is the path for built zip file.
    outputZipPath: <path-to-generated-zip-file>
      # Required. Relative path to the yaml file. This is the path for built manifest json file.
    outputJsonPath: <path-to-generated-json-file>

teamsApp/publishAppPackage

L’action teamsApp/publishAppPackage publie le fichier zip de l’application Teams générée dans le catalogue d’applications du locataire. Il fonctionne dans le catalogue d’applications client Microsoft 365.

- uses: teamsApp/publishAppPackage
    with:
      # Required. Relative path to this file. This is the path for built zip file.
    appPackagePath: <path-to-teams-app-package>
    # Write the information of created resources into environment file for the specified environment variable(s).
    writeToEnvironmentFile:
      # The Teams app id in tenant app catalog.
    publishedAppId: <your-preferred-env-var-name>

aadApp/create

L’action aadApp/create crée une application Microsoft Entra pour authentifier les utilisateurs si la variable d’environnement qui stocke le clientId est vide. Il fonctionne dans l’ID Microsoft Entra dans le locataire Microsoft 365.

- uses: aadApp/create
    with:
      # Required. The Microsoft Entra app's display name. When you run aadApp/update, the Microsoft Entra app name will be updated based on the definition in manifest. If you don't want to change the name, make sure the name in Microsoft Entra app manifest is the same with the name defined here.
      name: <your-application-name>
      # Required. If the value is false, the action will not generate client secret for you
      generateClientSecret: true
      # Required. Specifies what Microsoft accounts are supported for the current application. Supported values are: `AzureADMyOrg`, `AzureADMultipleOrgs`, `AzureADandPersonalMicrosoftAccount`, `PersonalMicrosoftAccount`.
      signInAudience: "AzureADMyOrg"
    # Write the information of created resources into environment file for the specified environment variable(s).
    writeToEnvironmentFile:
      # Required. The client (application) ID of Microsoft Entra application. The action will refer the environment variable defined here to determine whether to create a new Microsoft Entra app.
      clientId: <your-preferred-env-var-name>
      # Required when `generateClientSecret` is `true`. The action will refer the environment variable defined here to determine whether to create a new client secret. It's recommended to add `SECRET_` prefix to the environment variable name so it will be stored to the .env.{envName}.user environment file.
      clientSecret: <your-preferred-env-var-name>
      # Required. The object ID of Microsoft Entra application
      objectId: <your-preferred-env-var-name>
      # Optional. The tenant ID of Microsoft Entra tenant
      tenantId: <your-preferred-env-var-name>
      # Optional. The Microsoft Entra authority
      authority: <your-preferred-env-var-name>
      # Optional. The host name of Microsoft Entra authority
      authorityHost: <your-preferred-env-var-name>

aadApp/update

aadApp/update l’action met à jour votre application Microsoft Entra en fonction du manifeste de l’application Microsoft Entra. Il fait référence à la propriété ID dans le manifeste de l’application Microsoft Entra pour déterminer l’application Microsoft Entra à mettre à jour. aadApp/update fonctionne sur l’ID Microsoft Entra dans votre locataire Microsoft 365.

- uses: aadApp/update
    with:
      # Required. Relative path to the yaml file. Path to the Microsoft Entra app manifest. Environment variables in manifest will be replaced before apply to Microsoft Entra app.
      manifestPath: <path-to-manifest-file>
      # Required. Relative path to the yaml folder. This action will output the final Microsoft Entra app manifest used to update Microsoft Entra app to this path.
      outputFilePath : <path-to-output-file>

botAadApp/create

L’action botAadApp/create crée un nouveau ou réutilise une application Microsoft Entra existante pour le bot. Il fonctionne sur l’ID Microsoft Entra dans le locataire Microsoft 365.

- uses: botAadApp/create
    with:
      # Required. The Microsoft Entra app's display name
      name: <your-app-name>
    writeToEnvironmentFile:
      # The The Microsoft Entra app's client id created for bot.
      botId: <your-preferred-env-var-name>
      # The The Microsoft Entra app's client secret created for bot. 
      botPassword: <your-preferred-env-var-name>

arm/deploy

L’action arm/deploy déploie des modèles ARM donnés en parallèle. Il fonctionne sur l’abonnement Azure.

- uses: arm/deploy
    with:
      # Required. You can use built-in environment variable `AZURE_SUBSCRIPTION_ID` here. TeamsFx will ask you select one subscription if its value is empty. You're free to reference other environment variable here, but TeamsFx will not ask you to select subscription if it's empty in this case.
      subscriptionId: ${{AZURE_SUBSCRIPTION_ID}}
      # Required. You can use built-in environment variable `AZURE_RESOURCE_GROUP_NAME` here. TeamsFx will ask you to select or create one resource group if its value is empty. You're free to reference other environment variable here, but TeamsFx will not ask you to select or create resource group if it's empty in this case.
      resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}}
      # Required. The ARM templates to be deployed.
      templates:
        # Required. Relative path to the yaml file.
      - path: <path-to-arm-template>
        # Optional. Relative path to the yaml file. TeamsFx will replace the environment variable reference with real value before deploy ARM template.
        parameters: <path-to-arm-template-parameter>
        # Required. Name of the ARM template deployment.
        deploymentName: <arm-deployment-name>
      # Optional. Teams Toolkit will download this bicep CLI version from github for you, will use bicep CLI in PATH if you remove this config.
      bicepCliVersion: v0.9.1

azureStorage/enableStaticWebsite

L’action azureStorage/enableStaticWebsite active le paramètre de site web statique dans stockage Azure. Il fonctionne sur stockage Azure.

- uses: azureStorage/enableStaticWebsite
    with:
      # Required. The resource id of Azure Storage
      storageResourceId: ${{<env-name-of-azure-storage-resource-id>}}
      # Required. The path to index page.
      indexPage: <path-to-index-page>
      # Required. The path to error page.
      errorPage: <path-to-error-page>

script

L’action script exécute un script défini par l’utilisateur.

- uses: script
    with:
     # Required. Command to run or path to the script. Succeeds if exit code is 0. '::set-teamsfx-env key=value' is a special command to generate output variables into .env file, in this case, "mykey=abc" will be added the output in the corresponding .env file.
     run: $my_key="abc"; echo "::set-teamsfx-env mykey=${my_key}"
     # Optional. Available values are: bash, sh, powershell(Powershell Desktop), pwsh(powershell core), cmd. If omitted, it defaults to bash on Linux/MacOS, defaults to pwsh on windows.
     shell: <shell-name>
     # Optional. Current working directory. Defaults to the directory of this file.
     workingDirectory: <working-directory>
     # Optional. Timeout in ms.
     timeout: <timeout-in-ms>
     # Optional. Redirect stdout and stderr to a file.
     redirectTo: <path-to-output-file>

Personnaliser l’approvisionnement des ressources

Les étapes d’approvisionnement sont définies dans le teamsapp.yml fichier, sous la provision propriété . Vous pouvez ajouter, supprimer ou mettre à jour des actions à la provision propriété pour définir les actions attendues que vous souhaitez effectuer lors de l’approvisionnement.

Référencer des variables d’environnement dans des fichiers de paramètres

Teams Toolkit prend en charge le référencement des valeurs des variables d’environnement dans le fichier, le teamsapp.yml manifeste de l’application Teams, le manifeste de l’application Microsoft Entra et les fichiers de paramètres Azure. Vous pouvez utiliser la syntaxe ${{ENV_VARIABLE_NAME}} pour référencer des variables d’environnement.

L’exemple suivant définit la valeur de la variable MY_AZURE_SUBSCRIPTION_ID d’environnement sur subscriptionId:

subscriptionId: ${{MY_AZURE_SUBSCRIPTION_ID}}

Personnaliser les fichiers de modèle ARM

Si les modèles prédéfinis ne répondent pas aux exigences de votre application, vous pouvez créer votre propre modèle ARM ou mettre à jour un modèle ARM existant et fournir le chemin d’action arm/deploy comme suit :

- uses: arm/deploy
    with:
      subscriptionId: ${{AZURE_SUBSCRIPTION_ID}}
      resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}}
      templates:
      - path: <path-to-your-arm-template>
        parameters: <path-to-your-parameter-file>
        deploymentName: <arm-deployment-name>
      bicepCliVersion: <bicep-cli-version>

L’action arm/deploy prend en charge les modèles ARM écrits au format bicep et json. Si vous utilisez le format json, vous pouvez omettre le bicepCliVersion paramètre . Vous devez avoir des connaissances de base d’Azure Resource Manager. Pour plus d’informations, consultez la documentation Azure Resource Manager.

Gérer vos ressources

Vous pouvez vous connecter au portail Azure et gérer toutes les ressources créées à l’aide du kit de ressources Teams.

  • Vous pouvez sélectionner un groupe de ressources dans la liste existante ou le nouveau groupe de ressources que vous avez créé.
  • Vous pouvez voir les détails du groupe de ressources que vous avez sélectionné dans la section Vue d’ensemble de la table des matières.

Personnaliser les applications Teams

Vous pouvez personnaliser votre bot ou l’application Teams en ajoutant des variables d’environnement pour utiliser une application Microsoft Entra que vous avez créée. Vous pouvez personnaliser l’application Teams des manières suivantes :

Utiliser une application Microsoft Entra existante pour votre application Teams

Pour utiliser une application Microsoft Entra créée pour votre application Teams et ajouter des variables d’environnement aux fichiers .env, procédez comme suit.

  1. Ouvrez le teamsapp.yml fichier et recherchez l’action aadApp/create .

  2. Recherchez les noms de variables d’environnement qui stockent des informations pour l’application Microsoft Entra dans la writeToEnvironmentFile propriété . Si vous créez des projets à l’aide de Teams Toolkit, la définition de propriété par défaut writeToenvironmentFile est la suivante :

     writeToEnvironmentFile:
      clientId: AAD_APP_CLIENT_ID
      clientSecret: SECRET_AAD_APP_CLIENT_SECRET
      objectId: AAD_APP_OBJECT_ID
      tenantId: AAD_APP_TENANT_ID
      authority: AAD_APP_OAUTH_AUTHORITY
      authorityHost: AAD_APP_OAUTH_AUTHORITY_HOST
    
  3. Ajoutez des valeurs pour chaque variable d’environnement de l’étape 2.

    1. Ajoutez les variables d’environnement suivantes et leurs valeurs au env\.env.{env} fichier. Par exemple :

       AAD_APP_CLIENT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_OBJECT_ID=<value of Microsoft Entra application's object id> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_TENANT_ID=<value of Microsoft Entra's (tenant) id>> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_OAUTH_AUTHORITY=<value of Microsoft Entra's authority> # example: https://login.microsoftonline.com/<Directory (tenant) ID>
       AAD_APP_OAUTH_AUTHORITY_HOST=<host of Microsoft Entra's authority> # example: https://login.microsoftonline.com
       AAD_APP_ACCESS_AS_USER_PERMISSION_ID=<id of access_as_user permission> # example: 00000000-0000-0000-0000-000000000000
      
    2. Si votre application nécessite une clé secrète client d’application Microsoft Entra, ajoutez la variable d’environnement suivante et sa valeur au env\.env.{env}.user fichier. Par exemple :

      SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
      

Si vous n’avez pas encore d’application Microsoft Entra ou si vous en avez une mais que vous ne savez pas où trouver la valeur correcte, consultez Utiliser l’application Microsoft Entra existante dans le projet TeamsFx.

Remarque

  • N’oubliez pas de mettre à jour les noms des variables d’environnement dans les exemples si vous utilisez des noms différents dans writeToEnvironmentFile.
  • Si vous n’utilisez aadApp/create pas d’action pour créer une application Microsoft Entra, vous pouvez ajouter les variables d’environnement nécessaires avec votre nom préféré sans suivre les étapes ci-dessus.
  • Veillez à ne pas partager la même application Microsoft Entra dans plusieurs environnements.

Utiliser une application Microsoft Entra existante pour votre bot

Vous pouvez suivre les étapes pour ajouter des variables d’environnement aux fichiers .env afin d’utiliser une application Microsoft Entra créée pour votre application Teams.

  1. Ouvrez le teamsapp.yml fichier et recherchez l’action botAadApp/create .

  2. Recherchez les noms de variables d’environnement qui stockent des informations pour l’application Microsoft Entra dans la writeToEnvironmentFile propriété . La définition par défaut writeToEnvironmentFile si vous créez des projets à l’aide de Teams Toolkit est la suivante :

     writeToEnvironmentFile:
       botId: BOT_ID
       botPassword: SECRET_BOT_PASSWORD
    
  3. Ajoutez des valeurs pour chaque variable d’environnement de l’étape 2.

    1. Ajoutez la variable d’environnement et sa valeur au env\.env.{env} fichier. Par exemple :

      BOT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000    
      
    2. Ajoutez la variable d’environnement et sa valeur au env\.env.{env}.user fichier. Par exemple :

      SECRET_BOT_PASSWORD=<value of Microsoft Entra application's client secret>
      

Si vous n’avez pas encore d’application Microsoft Entra pour votre bot ou si vous en avez une, mais que vous ne savez pas où trouver les valeurs correctes, voir Utiliser l’application Microsoft Entra existante dans le projet TeamsFx.

Remarque

  • N’oubliez pas de mettre à jour les noms des variables d’environnement dans les exemples si vous utilisez des noms différents dans writeToEnvironmentFile.
  • Si vous n’utilisez botAadApp/create pas d’action pour créer une application Microsoft Entra, vous pouvez ajouter les variables d’environnement nécessaires avec votre nom préféré sans suivre les étapes ci-dessus.
  • Veillez à ne pas partager la même application Microsoft Entra dans plusieurs environnements.

Voir aussi