Aprovisionar recursos en la nube

TeamsFx se integra con Azure y la nube de Microsoft 365, lo que permite colocar la aplicación en Azure con un solo comando. TeamsFx se integra con Azure Resource Manager (ARM), que permite aprovisionar los recursos de Azure que la aplicación necesita para el enfoque de código.

Aprovisionamiento mediante el kit de herramientas de Microsoft Teams en Microsoft Visual Studio Code

Puede desencadenar el comando de aprovisionamiento en Teams Toolkit o en la CLI de TeamsFx para crear o actualizar recursos para la aplicación. Los pasos del comando de aprovisionamiento se definen en el teamsapp.yml archivo, en provision la propiedad . Puede ver el archivo para comprender qué recursos se crean.

Nota:

Los servicios de Azure incurren en costos en su suscripción. Para obtener más información sobre la estimación de costos, consulte calculadora de precios.

Aprovisionamiento de acciones

En la lista siguiente se muestran las acciones diseñadas para el aprovisionamiento.

teamsApp/create

¿Qué es?

Si la variable de entorno que almacena el identificador de aplicación de Teams está vacía o no se encuentra el identificador de la aplicación en el Portal para desarrolladores de Teams, esta acción crea una nueva aplicación de Teams.

¿Qué recurso funciona?

Aplicación de Teams en el Portal para desarrolladores de Teams.

Cómo utilizarlo

  - 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

¿Qué es?

Aplique el manifiesto de aplicación (anteriormente denominado manifiesto de aplicación de Teams) a una aplicación de Teams existente en el Portal para desarrolladores de Teams. Usa el identificador de aplicación en el archivo manifest.json para determinar qué aplicación de Teams se va a actualizar.

¿Qué recurso funciona?

Aplicación de Teams en el Portal para desarrolladores de Teams.

Cómo utilizarlo

- 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

¿Qué es?

Esta acción representa la plantilla de manifiesto de aplicación con variables de entorno y valida el archivo de manifiesto de aplicación mediante su esquema.

¿Qué recurso funciona?

N/D

Cómo utilizarlo

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

teamsApp/validateAppPackage

¿Qué es?

Esta acción valida el paquete de aplicaciones de Teams mediante reglas de validación.

¿Qué recurso funciona?

N/D

Cómo utilizarlo

  - 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

¿Qué es?

Esta acción representa la plantilla de manifiesto de aplicación con variables de entorno y comprime el archivo de manifiesto de la aplicación con dos iconos en un archivo ZIP.

¿Qué recurso funciona?

N/D

Cómo utilizarlo

- uses: teamsApp/zipAppPackage
    with:
      # Required. Relative path to the yaml file. This is the path for 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

¿Qué es?

Esta acción publica un archivo zip de aplicación de Teams compilado en el catálogo de aplicaciones de inquilino.

¿Qué recurso funciona?

Aplicación de Teams en el catálogo de aplicaciones de inquilino de Microsoft 365.

Cómo utilizarlo

- 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

¿Qué es?

Esta acción crea una nueva aplicación Microsoft Entra para autenticar a los usuarios si la variable de entorno que almacena clientId está vacía.

¿Qué recurso funciona?

Microsoft Entra ID en el inquilino de Microsoft 365.

Cómo utilizarlo

- 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

¿Qué es?

Esta acción actualiza la aplicación Microsoft Entra en función del manifiesto de Microsoft Entra aplicación. Hace referencia a la propiedad ID de Microsoft Entra manifiesto de aplicación para determinar qué Microsoft Entra aplicación se va a actualizar.

¿Qué recurso funciona?

Microsoft Entra ID en el inquilino de Microsoft 365.

Cómo utilizarlo

- 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

¿Qué es?

Esta acción crea una nueva aplicación de Microsoft Entra existente para bot o la reutiliza.

¿Qué recurso funciona?

Microsoft Entra ID en el inquilino de Microsoft 365.

Cómo utilizarlo

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

arm/deploy

¿Qué es?

Esta acción implementa plantillas de ARM dadas en paralelo.

¿Qué recurso funciona?

Suscripción a Azure.

Cómo utilizarlo

- 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

¿Qué es?

Esta acción habilita la configuración del sitio web estático en Azure Storage.

¿Qué recurso funciona?

Azure Storage.

Cómo utilizarlo

- 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>

azureStaticWebApps/getDeploymentToken

¿Qué es?

Esta acción recupera el token de implementación de Azure Static Web Apps.

Información de la versión

v1.4

¿Qué recurso funciona?

Azure Static Web Apps.

Cómo utilizarlo

- uses: azureStaticWebApps/getDeploymentToken
    with:
      resourceId: ${{AZURE_STATIC_WEB_APPS_RESOURCE_ID}}
    writeToEnvironmentFile:
      deploymentToken: SECRET_TAB_SWA_DEPLOYMENT_TOKEN

Guión

¿Qué es?

Esta acción ejecuta un script definido por el usuario.

¿Qué recurso funciona?

N/D

Cómo utilizarlo

- 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>

Personalización del aprovisionamiento de recursos

Los pasos de aprovisionamiento se definen en teamsapp.yml el archivo, en provision la propiedad . Puede agregar, quitar o actualizar acciones a la provision propiedad para definir las acciones esperadas que desea realizar durante el aprovisionamiento.

Variables de entorno de referencia en archivos de parámetros

Teams Toolkit admite la referencia a los valores de variables de entorno en , manifiesto teamsapp.ymlde aplicación, manifiesto de Microsoft Entra aplicación y archivos de parámetros de Azure. Puede usar la sintaxis ${{ENV_VARIABLE_NAME}} para hacer referencia a variables de entorno.

En el ejemplo siguiente se establece el valor de la variable MY_AZURE_SUBSCRIPTION_ID de entorno en subscriptionId:

subscriptionId: ${{MY_AZURE_SUBSCRIPTION_ID}}

Personalización de archivos de plantilla de ARM

Si las plantillas predefinidas no cumplen los requisitos de la aplicación, puede crear su propia plantilla de ARM o actualizar la plantilla de ARM existente y proporcionar la ruta de acceso a arm/deploy la acción como en la plantilla siguiente:

- 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>

La arm/deploy acción admite plantillas de ARM escritas en formato bicep y json. Si usa el formato json, puede omitir el bicepCliVersion parámetro . Debe tener conocimientos básicos de Azure Resource Manager. Puede empezar a trabajar con Azure Resource Manager en la documentación de Azure Resource Manager.

Personalización de aplicaciones de Teams

Puede personalizar el bot o la aplicación de Teams agregando variables de entorno para usar una aplicación Microsoft Entra creada por usted. Realice las siguientes formas de personalizar la aplicación de Teams:

Uso de una aplicación de Microsoft Entra existente para la aplicación de Teams

Puede seguir los pasos para agregar variables de entorno a los archivos .env para usar una aplicación Microsoft Entra creada para la aplicación de Teams. Si aún no tiene una aplicación de Microsoft Entra o ya tiene una, pero no sabe dónde encontrar el valor correcto, vea cómo usar la aplicación Microsoft Entra existente en el proyecto TeamsFx.

  1. Abra teamsapp.yml y busque la aadApp/create acción.

  2. Busque los nombres de variables de entorno que almacenan información para Microsoft Entra aplicación en la writeToEnvironmentFile propiedad . La definición predeterminada writeToenvironmentFile si crea proyectos mediante el kit de herramientas de Teams es la siguiente:

     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. Agregue valores para cada variable de entorno del paso 2.

    1. Agregue las siguientes variables de entorno y sus valores al env\.env.{env} archivo.

       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 la aplicación requiere un secreto de cliente de aplicación Microsoft Entra, agregue la siguiente variable de entorno y su valor al env\.env.{env}.user archivo.

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

Nota:

  • Recuerde actualizar los nombres de variables de entorno en los ejemplos si usa nombres diferentes en writeToEnvironmentFile.
  • Si no usa aadApp/create la acción para crear Microsoft Entra aplicación, puede agregar las variables de entorno necesarias con el nombre que prefiera sin seguir los pasos anteriores.
  • Asegúrese de no compartir la misma aplicación Microsoft Entra en varios entornos.

Uso de una aplicación de Microsoft Entra existente para el bot

Puede seguir los pasos para agregar variables de entorno a los archivos .env para usar una aplicación Microsoft Entra creada para la aplicación de Teams. Si aún no tiene una aplicación Microsoft Entra para el bot o ya tiene una, pero no sabe dónde encontrar los valores correctos, consulte Uso de la aplicación Microsoft Entra existente en el proyecto TeamsFx.

  1. Abra teamsapp.yml y busque la botAadApp/create acción.

  2. Busque los nombres de variables de entorno que almacenan información para Microsoft Entra aplicación en la writeToEnvironmentFile propiedad . La definición predeterminada writeToEnvironmentFile si crea proyectos mediante el kit de herramientas de Teams es la siguiente:

     writeToEnvironmentFile:
       botId: BOT_ID
       botPassword: SECRET_BOT_PASSWORD
    
  3. Agregue valores para cada variable de entorno del paso 2.

    1. Agregue la siguiente variable de entorno y su valor al env\.env.{env} archivo.

      BOT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000    
      
    2. Agregue la siguiente variable de entorno y su valor al env\.env.{env}.user archivo.

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

Nota:

  • Recuerde actualizar los nombres de variables de entorno en los ejemplos si usa nombres diferentes en writeToEnvironmentFile.
  • Si no usa botAadApp/create la acción para crear Microsoft Entra aplicación, puede agregar las variables de entorno necesarias con el nombre que prefiera sin seguir los pasos anteriores.
  • Asegúrese de no compartir la misma aplicación Microsoft Entra en varios entornos.

Consulte también

Implementar la aplicación de Teams en la nube