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), lo que permite aprovisionar 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?
Id. de Microsoft Entra 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 aplicación de 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.
¿Qué recurso funciona?
Id. de Microsoft Entra 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 para bot o la reutiliza.
¿Qué recurso funciona?
Id. de Microsoft Entra 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.yml
de aplicación, manifiesto de aplicación de Microsoft Entra 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
- Uso de una aplicación Microsoft Entra existente para el bot
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 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.
Abra
teamsapp.yml
y busque laaadApp/create
acción.Busque los nombres de variables de entorno que almacenan información para la aplicación Microsoft Entra en la
writeToEnvironmentFile
propiedad . La definición predeterminadawriteToenvironmentFile
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
Agregue valores para cada variable de entorno del paso 2.
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
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.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 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 no compartir 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. 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.
Abra
teamsapp.yml
y busque labotAadApp/create
acción.Busque los nombres de variables de entorno que almacenan información para la aplicación Microsoft Entra en la
writeToEnvironmentFile
propiedad . La definición predeterminadawriteToEnvironmentFile
si crea proyectos mediante el kit de herramientas de Teams es la siguiente:writeToEnvironmentFile: botId: BOT_ID botPassword: SECRET_BOT_PASSWORD
Agregue valores para cada variable de entorno del paso 2.
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
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 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 no compartir la misma aplicación Microsoft Entra en varios entornos.