Compartir a través de


Aprovisionamiento de recursos en la nube en Microsoft Visual Studio

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), lo que permite aprovisionar recursos de Azure que la aplicación necesita para el enfoque de código.

Inicio de sesión en su cuenta de Azure

  1. Abra Visual Studio.

  2. Abra el proyecto aplicación de Microsoft Teams.

  3. Seleccione ProjectTeams ToolkitProvision in the Cloud (Aprovisionamiento del kit > de herramientas de Project> Teams en la nube).

    Captura de pantalla que muestra el inicio de sesión en la cuenta de Azure.

  4. Seleccione Iniciar sesión....

    Captura de pantalla que muestra el inicio de sesión en la cuenta de Azure.

    Nota:

    Si ya ha iniciado sesión, se muestra el nombre de usuario o tiene una opción para Agregar una cuenta.

    Una vez que haya iniciado sesión en su cuenta de Azure con sus credenciales, el explorador se cerrará automáticamente.

Aprovisionar recursos en la nube

Después de abrir el proyecto en Visual Studio, para aprovisionar recursos en la nube, siga estos pasos:

  1. Seleccione ProjectTeams ToolkitProvision in the Cloud... (Aprovisionamiento del kit > de herramientas de Project> Teams en la nube...).

    Captura de pantalla que muestra cómo aprovisionar en la nube.

    Aparece la ventana Aprovisionar .

  2. Escriba los detalles siguientes para aprovisionar los recursos:

    1. Seleccione el nombre de la suscripción en el menú desplegable.
    2. Seleccione el grupo de recursos en el menú desplegable o puede crear un nuevo grupo de recursos seleccionando Nuevo....
    3. Seleccione la región en el menú desplegable.
    4. Seleccione Aprovisionar.

    Captura de pantalla que muestra la selección del grupo de recursos.

  3. En la ventana emergente que aparece, seleccione Aprovisionar.

    Captura de pantalla que muestra la advertencia de aprovisionamiento.

    El proceso de aprovisionamiento crea recursos en la nube de Azure. Puede supervisar el progreso observando la ventana de salida del kit de herramientas de Microsoft Teams.

  4. En la ventana emergente que aparece, para ver todos los recursos aprovisionados, seleccione Ver recursos aprovisionados.

    Captura de pantalla que muestra los recursos aprovisionados.

Aprovisionamiento de acciones

Las siguientes acciones están diseñadas para el aprovisionamiento:

teamsApp/create

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, la teamsApp/create acción crea una nueva aplicación de Teams. Funciona en la aplicación Teams en el Portal para desarrolladores de 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

Al aplicar el manifiesto de aplicación de Teams a una aplicación de Teams existente en el Portal para desarrolladores de Teams. teamsApp/update action usa el identificador de aplicación en manifest.json archivo para determinar qué aplicación de Teams se va a actualizar. Funciona en la aplicación Teams en el Portal para desarrolladores de 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

La teamsApp/validateManifest acción representa la plantilla de manifiesto de aplicación de Teams con variables de entorno y valida el archivo de manifiesto de aplicación de Teams mediante su esquema.

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

teamsApp/validateAppPackage

La teamsApp/validateAppPackage acción valida el paquete de aplicaciones de Teams mediante reglas de validación.

  - 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

La teamsApp/zipAppPackage acción representa la plantilla de manifiesto de aplicación de Teams con variables de entorno y comprime el archivo de manifiesto con dos iconos en un archivo 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

La teamsApp/publishAppPackage acción publica el archivo zip de la aplicación de Teams compilado en el catálogo de aplicaciones de inquilino. Funciona en el catálogo de aplicaciones de inquilino de 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

La aadApp/create acción crea una nueva aplicación Microsoft Entra para autenticar a los usuarios si la variable de entorno que almacena está clientId vacía. Funciona en Microsoft Entra ID en el inquilino de 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 acción actualiza la aplicación Microsoft Entra en función del manifiesto de la aplicación Microsoft Entra. Hace referencia a la propiedad ID del manifiesto de la aplicación Microsoft Entra para determinar qué aplicación de Microsoft Entra se va a actualizar. aadApp/update funciona con el identificador de Microsoft Entra en el inquilino de 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

La botAadApp/create acción crea una nueva aplicación de Microsoft Entra para bot o la reutiliza. Funciona con el identificador de Microsoft Entra en el inquilino de 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

La arm/deploy acción implementa plantillas de ARM dadas en paralelo. Funciona en la suscripción de 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

La azureStorage/enableStaticWebsite acción habilita la configuración del sitio web estático en Azure Storage. Funciona en Azure Storage.

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

Guión

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

- 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 el teamsapp.yml archivo, en la provision 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 las variables de entorno en el archivo, el teamsapp.yml manifiesto de aplicación de Teams, el manifiesto de la aplicación Microsoft Entra y los 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 de la siguiente manera:

- 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. Para más información, consulte la documentación de Azure Resource Manager.

Administrar los recursos

Puede iniciar sesión en Azure Portal y administrar todos los recursos creados mediante el kit de herramientas de Teams.

  • Puede seleccionar un grupo de recursos de la lista existente o el nuevo grupo de recursos que ha creado.
  • Puede ver los detalles del grupo de recursos que ha seleccionado en la sección de información general de la tabla de contenido.

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 que haya creado. Puede personalizar la aplicación de Teams de las siguientes maneras:

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

Para usar una aplicación de Microsoft Entra creada para la aplicación de Teams y agregar variables de entorno a los archivos .env, siga estos pasos.

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

  2. Busque los nombres de variables de entorno que almacenan información para la aplicación Microsoft Entra en la writeToEnvironmentFile propiedad . Si crea proyectos con Teams Toolkit, la definición de propiedad predeterminada writeToenvironmentFile 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. Por ejemplo:

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

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

Si aún no tiene una aplicación Microsoft Entra o tiene una, pero no sabe dónde encontrar el valor correcto, consulte Uso de la aplicación Microsoft Entra existente en el proyecto TeamsFx.

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 una aplicación Microsoft Entra, puede agregar las variables de entorno necesarias con el nombre que prefiera sin seguir los pasos anteriores.
  • Asegúrese de que no comparte la misma aplicación Microsoft Entra en varios entornos.

Uso de una aplicación 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.

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

  2. Busque los nombres de variables de entorno que almacenan información para la aplicación Microsoft Entra 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 variable de entorno y su valor al env\.env.{env} archivo. Por ejemplo:

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

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

Si aún no tiene una aplicación Microsoft Entra para el bot o tiene una, pero no sabe dónde encontrar los valores correctos, consulte Uso de la aplicación Microsoft Entra existente en el proyecto TeamsFx.

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 una aplicación Microsoft Entra, puede agregar las variables de entorno necesarias con el nombre que prefiera sin seguir los pasos anteriores.
  • Asegúrese de que no comparte la misma aplicación Microsoft Entra en varios entornos.

Vea también