Partilhar via


Aprovisionar recursos na cloud no Microsoft Visual Studio

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.

Iniciar sessão na sua conta do Azure

  1. Abra o Visual Studio.

  2. Abra o projeto da Aplicação Microsoft Teams.

  3. Selecione ProjectTeams ToolkitProvision (Aprovisionamento doToolkit> do Project > Teams) na Cloud.

    Captura de ecrã a mostrar o início de sessão na conta do Azure.

  4. Selecione Iniciar sessão....

    Captura de ecrã a mostrar o início de sessão na conta do Azure.

    Observação

    Se já tiver sessão iniciada, o seu nome de utilizador é apresentado ou tem uma opção para Adicionar uma conta.

    Depois de iniciar sessão na sua conta do Azure com as suas credenciais, o browser fecha automaticamente.

Provisionar recursos de nuvem

Depois de abrir o projeto no Visual Studio, para aprovisionar recursos na cloud, siga estes passos:

  1. Selecione ProjectTeams ToolkitProvision (Aprovisionamento doToolkit> do Project > Teams) na Cloud....

    Captura de ecrã a mostrar como aprovisionar na cloud.

    É apresentada a janela Aprovisionar.

  2. Introduza os seguintes detalhes para aprovisionar os recursos:

    1. Selecione o nome da subscrição no menu pendente.
    2. Selecione o Grupo de recursos no menu pendente ou pode criar um novo Grupo de recursos ao selecionar Novo....
    3. Selecione a região no menu pendente.
    4. Selecione Aprovisionar.

    Captura de ecrã a mostrar a seleção do grupo de recursos.

  3. Na janela de pop-up apresentada, selecione Aprovisionar.

    Captura de ecrã a mostrar o aviso de aprovisionamento.

    O processo de aprovisionamento cria recursos na cloud do Azure. Pode monitorizar o progresso observando a janela de saída do Microsoft Teams Toolkit.

  4. Na janela de pop-up apresentada, para ver todos os recursos aprovisionados, selecione Ver recursos aprovisionados.

    Captura de ecrã a mostrar os recursos aprovisionados.

Aprovisionar ações

As seguintes ações foram concebidas para aprovisionamento:

teamsApp/create

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, a ação teamsApp/create cria uma nova aplicação do Teams. Funciona na aplicação Teams no Portal do Programador do 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

Quando aplica o manifesto da aplicação Teams a uma aplicação do Teams existente no Portal do Programador do Teams. teamsApp/update A ação utiliza o ID da aplicação no ficheiro manifest.json para determinar que aplicação do Teams deve atualizar. Funciona na aplicação Teams no Portal do Programador do 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

A teamsApp/validateManifest ação compõe o modelo de manifesto da aplicação Teams com variáveis de ambiente e valida o ficheiro de manifesto da aplicação Teams com o respetivo 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

A teamsApp/validateAppPackage ação valida o pacote de aplicações do Teams através de regras de validação.

  - 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

A teamsApp/zipAppPackage ação compõe o modelo de manifesto da aplicação Teams com variáveis de ambiente e comprime o ficheiro de manifesto com dois ícones num ficheiro 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

A teamsApp/publishAppPackage ação publica o ficheiro zip da aplicação Teams criado no catálogo de aplicações do inquilino. Funciona no catálogo de aplicações de inquilinos do 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

A aadApp/create 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. Funciona no Microsoft Entra ID no inquilino do 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 A ação atualiza a sua aplicação Microsoft Entra com base no manifesto da aplicação Microsoft Entra. Refere-se à propriedade ID no manifesto da aplicação Microsoft Entra para determinar qual a aplicação Microsoft Entra a atualizar. aadApp/update funciona no Microsoft Entra ID no seu inquilino do 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

A botAadApp/create ação cria uma nova ou reutiliza uma aplicação Microsoft Entra existente para o bot. Funciona no Microsoft Entra ID no inquilino do 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

A arm/deploy ação implementa determinados modelos do ARM em paralelo. Funciona na subscrição do 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

A azureStorage/enableStaticWebsite ação ativa a definição de site estático no Armazenamento do Azure. Funciona no Armazenamento do Azure.

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

script

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

- 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 ficheiro, do teamsapp.yml manifesto da aplicação teams, do manifesto da aplicação Microsoft Entra e dos ficheiros de parâmetros do Azure. Pode utilizar a 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 da seguinte forma:

- 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 que são escritos no 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. Para obter mais informações, veja Documentação do Azure Resource Manager.

Gerir os seus recursos

Pode iniciar sessão no portal do Azure e gerir todos os recursos criados com o Teams Toolkit.

  • Pode selecionar um grupo de recursos na lista existente ou no novo grupo de recursos que criou.
  • Pode ver os detalhes do grupo de recursos que selecionou na secção descrição geral do índice.

Personalizar aplicações do Teams

Pode personalizar o bot ou a aplicação Teams ao adicionar variáveis de ambiente para utilizar uma aplicação Microsoft Entra que criou. Pode personalizar a aplicação Teams das seguintes formas:

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

Para utilizar uma aplicação Microsoft Entra criada para a sua aplicação Teams e para adicionar variáveis de ambiente aos ficheiros .env, siga estes passos.

  1. Abra o teamsapp.yml ficheiro 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 . Se criar projetos com o Teams Toolkit, a definição de propriedade predefinida writeToenvironmentFile é 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. Por exemplo:

       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. Por exemplo:

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

Se ainda não tiver uma aplicação Microsoft Entra ou tiver uma, mas não souber onde encontrar o valor correto, consulte Utilizar a aplicação Microsoft Entra existente no projeto TeamsFx.

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.

  1. Abra o teamsapp.yml ficheiro 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 variável de ambiente e o respetivo valor ao env\.env.{env} ficheiro. Por exemplo:

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

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

Se ainda não tiver uma aplicação Microsoft Entra para o seu bot ou tiver uma, mas não souber onde encontrar os valores corretos, consulte Utilizar a aplicação Microsoft Entra existente no projeto TeamsFx.

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