Provisionar recursos de nuvem

O TeamsFx integra-se com o Azure e a cloud do Microsoft 365, que permite colocar a sua aplicação no Azure com um único comando. O TeamsFx integra-se com o Azure Resource Manager (ARM), que permite aprovisionar recursos do Azure de que a sua aplicação precisa para a abordagem de código.

Aprovisionar com o Microsoft Teams Toolkit no Microsoft Visual Studio Code

Pode acionar o comando de aprovisionamento no Teams Toolkit ou na CLI do TeamsFx para criar ou atualizar recursos para a sua aplicação. Os passos do comando de aprovisionamento são definidos no teamsapp.yml ficheiro, na provision propriedade . Pode ver o ficheiro para compreender que recursos são criados.

Observação

Os serviços do Azure incorrem em custos na sua subscrição. Para obter mais informações sobre a estimativa de custos, veja Calculadora de preços.

Aprovisionar ações

A lista seguinte mostra as ações concebidas para aprovisionamento.

teamsApp/create

O que é

Se a variável de ambiente que armazena o ID da aplicação do Teams estiver vazia ou o ID da aplicação não for encontrado no Portal do Programador do Teams, esta ação cria uma nova aplicação do Teams.

Que recurso funciona

Aplicação Teams no Portal do Programador do Teams.

Como usar

  - 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

O que é

Aplique o manifesto da aplicação (anteriormente denominado manifesto de aplicação do Teams) a uma aplicação do Teams existente no Portal do Programador do Teams. Utiliza o ID da aplicação no ficheiro manifest.json para determinar que aplicação do Teams deve atualizar.

Que recurso funciona

Aplicação Teams no Portal do Programador do Teams.

Como usar

- 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

O que é

Esta ação compõe o modelo de manifesto da aplicação com variáveis de ambiente e valida o ficheiro de manifesto da aplicação com o respetivo esquema.

Que recurso funciona

N/D

Como usar

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

teamsApp/validateAppPackage

O que é

Esta ação valida o pacote de aplicações do Teams através de regras de validação.

Que recurso funciona

N/D

Como usar

  - 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

O que é

Esta ação compõe o modelo de manifesto da aplicação com variáveis de ambiente e comprime o ficheiro de manifesto da aplicação com dois ícones num ficheiro zip.

Que recurso funciona

N/D

Como usar

- 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

O que é

Esta ação publica o ficheiro zip da aplicação Teams criado no catálogo de aplicações do inquilino.

Que recurso funciona

Aplicação Teams no catálogo de aplicações de inquilinos do Microsoft 365.

Como usar

- 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

O que é

Esta ação cria uma nova aplicação Microsoft Entra para autenticar os utilizadores se a variável de ambiente que armazena o clientId estiver vazia.

Que recurso funciona

Microsoft Entra ID no seu inquilino do Microsoft 365.

Como usar

- 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

O que é

Esta ação atualiza a sua aplicação Microsoft Entra com base no manifesto da aplicação Give Microsoft Entra. Refere-se à propriedade ID no manifesto da aplicação Microsoft Entra para determinar qual a aplicação Microsoft Entra a atualizar.

Que recurso funciona

Microsoft Entra ID no seu inquilino do Microsoft 365.

Como usar

- 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

O que é

Esta ação cria uma nova ou reutiliza uma aplicação Microsoft Entra existente para o bot.

Que recurso funciona

Microsoft Entra ID no seu inquilino do Microsoft 365.

Como usar

- 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

O que é

Esta ação implementa determinados modelos do ARM em paralelo.

Que recurso funciona

Subscrição do Azure.

Como usar

- 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

O que é

Esta ação ativa a definição de site estático no Armazenamento do Azure.

Que recurso funciona

Armazenamento do Azure.

Como usar

- 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

O que é

Esta ação obtém o token de implementação das Aplicações Web Estáticas do Azure.

Informações da Versão

v1.4

Que recurso funciona

Aplicações Web Estáticas do Azure.

Como usar

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

script

O que é

Esta ação executa um script definido pelo utilizador.

Que recurso funciona

N/D

Como usar

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

Personalizar o provisionamento de recursos

Os passos de aprovisionamento são definidos no teamsapp.yml ficheiro, na provision propriedade . Pode adicionar, remover ou atualizar ações à provision propriedade para definir as ações esperadas que pretende efetuar durante o aprovisionamento.

Variáveis de ambiente de referência em ficheiros de parâmetros

O Teams Toolkit suporta a referência dos valores das variáveis de ambiente no teamsapp.yml, manifesto da aplicação, manifesto da aplicação Microsoft Entra e ficheiros de parâmetros do Azure. Pode utilizar sintaxe ${{ENV_VARIABLE_NAME}} para referenciar variáveis de ambiente.

O exemplo seguinte define o valor da variável MY_AZURE_SUBSCRIPTION_ID de ambiente como subscriptionId:

subscriptionId: ${{MY_AZURE_SUBSCRIPTION_ID}}

Personalizar arquivos de modelo do ARM

Se os modelos predefinidos não cumprirem os requisitos da sua aplicação, pode criar o seu próprio modelo arm ou atualizar o modelo do ARM existente e fornecer o caminho para a arm/deploy ação, tal como no modelo seguinte:

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

A arm/deploy ação suporta modelos arm escritos em formato bíceps e json. Se utilizar o formato json, pode omitir o bicepCliVersion parâmetro . Precisa de ter conhecimentos básicos do Azure Resource Manager. Pode começar a utilizar o Azure Resource Manager na documentação do Azure Resource Manager.

Personalizar aplicações do Teams

Pode personalizar o seu bot ou a aplicação Teams ao adicionar variáveis de ambiente para utilizar uma aplicação Microsoft Entra criada por si. Efetue as seguintes formas de personalizar a aplicação Teams:

Utilizar uma aplicação Microsoft Entra existente para a sua aplicação Teams

Pode seguir os passos para adicionar variáveis de ambiente aos ficheiros .env para utilizar uma aplicação Microsoft Entra criada para a sua aplicação Teams. Se ainda não tiver uma aplicação Microsoft Entra ou já tiver uma, mas não souber onde encontrar o valor correto, veja como utilizar a aplicação Microsoft Entra existente no projeto TeamsFx.

  1. Abra teamsapp.yml e localize a ação aadApp/create .

  2. Localize os nomes das variáveis de ambiente que armazenam informações para a aplicação Microsoft Entra na writeToEnvironmentFile propriedade . A definição predefinida writeToenvironmentFile se criar projetos com o Teams Toolkit é a seguinte:

     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. Adicione valores para cada variável de ambiente do passo 2.

    1. Adicione as seguintes variáveis de ambiente e os respetivos valores ao env\.env.{env} ficheiro.

       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. Se a sua aplicação precisar de um segredo do cliente da aplicação Microsoft Entra, adicione a seguinte variável de ambiente e o respetivo valor ao env\.env.{env}.user ficheiro.

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

Observação

  • Lembre-se de atualizar os nomes das variáveis de ambiente nos exemplos se utilizar nomes diferentes em writeToEnvironmentFile.
  • Se não utilizar aadApp/create a ação para criar a aplicação Microsoft Entra, pode adicionar as variáveis de ambiente necessárias com o seu nome preferido sem seguir os passos acima.
  • Certifique-se de que não partilha a mesma aplicação Microsoft Entra em vários ambientes.

Utilizar uma aplicação Microsoft Entra existente para o seu bot

Pode seguir os passos para adicionar variáveis de ambiente aos ficheiros .env para utilizar uma aplicação Microsoft Entra criada para a sua aplicação Teams. Se ainda não tiver uma aplicação Microsoft Entra para o seu bot ou já tiver uma, mas não souber onde encontrar os valores corretos, consulte Utilizar a aplicação Microsoft Entra existente no projeto TeamsFx.

  1. Abra teamsapp.yml e localize a ação botAadApp/create .

  2. Localize os nomes das variáveis de ambiente que armazenam informações para a aplicação Microsoft Entra na writeToEnvironmentFile propriedade . A definição predefinida writeToEnvironmentFile se criar projetos com o Teams Toolkit é a seguinte:

     writeToEnvironmentFile:
       botId: BOT_ID
       botPassword: SECRET_BOT_PASSWORD
    
  3. Adicione valores para cada variável de ambiente do passo 2.

    1. Adicione a seguinte variável de ambiente e o respetivo valor ao env\.env.{env} ficheiro.

      BOT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000    
      
    2. Adicione a seguinte variável de ambiente e o respetivo valor ao env\.env.{env}.user ficheiro.

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

Observação

  • Lembre-se de atualizar os nomes das variáveis de ambiente nos exemplos se utilizar nomes diferentes em writeToEnvironmentFile.
  • Se não utilizar botAadApp/create a ação para criar a aplicação Microsoft Entra, pode adicionar as variáveis de ambiente necessárias com o seu nome preferido sem seguir os passos acima.
  • Certifique-se de que não partilha a mesma aplicação Microsoft Entra em vários ambientes.

Confira também

Implantar o aplicativo Teams na nuvem