Provisionar recursos de nuvem

O TeamsFx se integra ao Azure e à nuvem do Microsoft 365, permitindo que você coloque seu aplicativo no Azure com um único comando. O TeamsFx se integra ao Azure Resource Manager (ARM), permitindo que você provisione Azure recursos de que seu aplicativo precisa para a abordagem de código.

Provisionar usando o Kit de Ferramentas de Agentes do Microsoft 365 no Visual Studio Code

Você pode disparar o comando provisionar no Agents Toolkit (anteriormente conhecido como Teams Toolkit) ou na CLI do Microsoft 365 Agents Toolkit (anteriormente conhecida como CLI TeamsFx) para criar ou atualizar recursos para seu aplicativo. As etapas do comando provision são definidas no m365agents.yml arquivo, na provision propriedade. Você pode exibir o arquivo para entender quais recursos são criados.

Observação

Os serviços do Azure incorrem em custos em sua assinatura. Para obter mais informações sobre estimativa de custo, consulte calculadora de preços.

Provisionar ações

A lista a seguir mostra as ações projetadas para provisionamento.

teamsApp/create

O que é

Se a variável de ambiente que armazena a ID do aplicativo Teams estiver vazia ou a ID do aplicativo não for encontrada no Portal do Desenvolvedor do Teams, essa ação criará um novo aplicativo Teams.

Que recurso ele opera

Aplicativo Teams no Portal do Desenvolvedor 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 do aplicativo (anteriormente chamado de manifesto do aplicativo do Teams) a um aplicativo do Teams existente no Portal do Desenvolvedor do Teams. Ele usa a ID do aplicativo no manifest.json arquivo para determinar qual aplicativo do Teams atualizar.

Que recurso ele opera

Aplicativo Teams no Portal do Desenvolvedor 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 é

Essa ação renderiza o modelo de manifesto do aplicativo com variáveis de ambiente e valida o arquivo de manifesto do aplicativo usando seu esquema.

Que recurso ele opera

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 é

Essa ação valida o pacote de aplicativos do Teams usando regras de validação.

Que recurso ele opera

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 é

Essa ação renderiza o modelo de manifesto do aplicativo com variáveis de ambiente e compacta o arquivo de manifesto do aplicativo com dois ícones em um arquivo zip.

Que recurso ele opera

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 arquivo zip do aplicativo Teams criado no catálogo de aplicativos do locatário.

Que recurso ele opera

Aplicativo Teams no catálogo de aplicativos de locatário 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 é

Essa ação cria um novo aplicativo Microsoft Entra para autenticar usuários se a variável de ambiente armazenada clientId estiver vazia.

Que recurso ele opera

Microsoft Entra ID em seu locatário 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 é

Essa ação atualiza seu aplicativo Microsoft Entra com base no manifesto do aplicativo Microsoft Entra fornecido. Refere-se à propriedade ID no manifesto do aplicativo Microsoft Entra para determinar qual aplicativo do Microsoft Entra atualizar.

Que recurso ele opera

Microsoft Entra ID em seu locatário 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 é

Essa ação cria um aplicativo do Microsoft Entra existente ou reutiliza um existente para um bot.

Que recurso ele opera

Microsoft Entra ID em seu locatário 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>

armar/implantar

O que é

Essa ação implanta determinados modelos ARM em paralelo.

Que recurso ele opera

assinatura 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. Agents 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 é

Essa ação habilita a configuração de site estático no Armazenamento do Azure.

Que recurso ele opera

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 recupera o token de implantação dos Aplicativos Web Estáticos do Azure.

Informações da versão

v1.4

Que recurso ele opera

Aplicativos Web Estáticos 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 é

Essa ação executa um script definido pelo usuário.

Que recurso ele opera

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

As etapas de provisionamento são definidas no m365agents.yml arquivo, na provision propriedade. Você pode adicionar, remover ou atualizar ações na propriedade para definir as ações esperadas que deseja executar durante o provision provisionamento.

Referenciar variáveis de ambiente em arquivos de parâmetros

O Agents Toolkit dá suporte à referência de valores de variáveis de ambiente no manifesto do aplicativo, no manifesto do aplicativo do Microsoft Entra e nos m365agents.ymlarquivos de parâmetros do Azure. Você pode usar a sintaxe ${{ENV_VARIABLE_NAME}} para fazer referência a variáveis de ambiente.

O exemplo a seguir 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 atenderem aos requisitos do aplicativo, você poderá criar seu próprio modelo do ARM ou atualizar o modelo do ARM existente e fornecer o caminho para arm/deploy a ação como no seguinte modelo:

- 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 nos formatos bíceps e json. Se você usar o formato json, poderá omitir o bicepCliVersion parâmetro. Você precisa ter conhecimentos básicos de Azure Resource Manager. Você pode começar a usar Azure Resource Manager em Azure Resource Manager documentação.

Personalizar aplicativos do Teams

Você pode personalizar seu bot ou o aplicativo Teams adicionando variáveis de ambiente para usar um aplicativo Microsoft Entra criado por você. As maneiras de personalizar o aplicativo Teams são:

Usar um aplicativo Microsoft Entra existente para seu aplicativo do Teams

Você pode seguir as etapas para adicionar variáveis de ambiente aos arquivos .env para usar um aplicativo Microsoft Entra criado para seu aplicativo do Teams. Se você ainda não tiver um aplicativo Microsoft Entra ou já tiver um, mas não souber onde encontrar o valor correto, consulte como usar o aplicativo Microsoft Entra existente no projeto TeamsFx.

  1. Abra m365agents.yml e encontre a aadApp/create ação.

  2. Encontre os nomes de variáveis de ambiente que armazenam informações do aplicativo Microsoft Entra na writeToEnvironmentFile propriedade. A definição padrão writeToenvironmentFile se você criar projetos usando o Agents 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 da etapa 2.

    1. Adicione as variáveis de ambiente a seguir e seus valores ao env\.env.{env} arquivo.

       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 o aplicativo exigir um segredo de cliente do aplicativo Microsoft Entra, adicione a seguinte variável de ambiente e seu valor ao env\.env.{env}.user arquivo.

      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 você usar nomes diferentes no writeToEnvironmentFile.
  • Se você não usar aadApp/create a ação para criar o aplicativo Microsoft Entra, poderá adicionar as variáveis de ambiente necessárias com seu nome preferencial sem seguir as etapas acima.
  • Certifique-se de não compartilhar o mesmo aplicativo Microsoft Entra em vários ambientes.

Usar um aplicativo Microsoft Entra existente para o bot

Você pode seguir as etapas para adicionar variáveis de ambiente aos arquivos .env para usar um aplicativo Microsoft Entra criado para seu aplicativo do Teams. Se você ainda não tiver um aplicativo Microsoft Entra para seu bot ou já tiver um, mas não souber onde encontrar os valores corretos, consulte Usar o aplicativo Microsoft Entra existente no projeto TeamsFx.

  1. Abra m365agents.yml e encontre a botAadApp/create ação.

  2. Encontre os nomes de variáveis de ambiente que armazenam informações do aplicativo Microsoft Entra na writeToEnvironmentFile propriedade. A definição padrão writeToEnvironmentFile se você criar projetos usando o Agents Toolkit é a seguinte:

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

    1. Adicione a seguinte variável de ambiente e seu valor ao env\.env.{env} arquivo.

      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 seu valor ao env\.env.{env}.user arquivo.

      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 você usar nomes diferentes no writeToEnvironmentFile.
  • Se você não usar botAadApp/create a ação para criar o aplicativo Microsoft Entra, poderá adicionar as variáveis de ambiente necessárias com seu nome preferencial sem seguir as etapas acima.
  • Certifique-se de não compartilhar o mesmo aplicativo Microsoft Entra em vários ambientes.

Confira também

Implantar o aplicativo Teams na nuvem