Entrega contínua utilizando Azure DevOpsContinuous delivery by using Azure DevOps

Pode implantar automaticamente a sua função numa aplicação Azure Functions utilizando Pipelines Azure.You can automatically deploy your function to an Azure Functions app by using Azure Pipelines.

Tem duas opções para definir o seu oleoduto:You have two options for defining your pipeline:

  • Ficheiro YAML: Um ficheiro YAML descreve o gasoduto.YAML file: A YAML file describes the pipeline. O ficheiro pode ter uma secção de etapas de construção e uma secção de libertação.The file might have a build steps section and a release section. O ficheiro YAML deve estar no mesmo repo que a aplicação.The YAML file must be in the same repo as the app.
  • Modelo: Os modelos são tarefas prontas que constroem ou implementam a sua aplicação.Template: Templates are ready-made tasks that build or deploy your app.

Gasoduto baseado em YAMLYAML-based pipeline

Para criar um pipeline baseado em YAML, primeiro construa a sua app e, em seguida, implemente a aplicação.To create a YAML-based pipeline, first build your app, and then deploy the app.

Criar a sua aplicaçãoBuild your app

A forma como constrói a sua aplicação em Azure Pipelines depende da linguagem de programação da sua aplicação.How you build your app in Azure Pipelines depends on your app's programming language. Cada idioma tem passos de construção específicos que criam um artefacto de implantação.Each language has specific build steps that create a deployment artifact. Um artefacto de implantação é usado para implementar a sua aplicação de função em Azure.A deployment artifact is used to deploy your function app in Azure.

Pode utilizar a seguinte amostra para criar um ficheiro YAML para construir uma aplicação .NET:You can use the following sample to create a YAML file to build a .NET app:

pool:
      vmImage: 'VS2017-Win2016'
steps:
- script: |
    dotnet restore
    dotnet build --configuration Release
- task: DotNetCoreCLI@2
  inputs:
    command: publish
    arguments: '--configuration Release --output publish_output'
    projects: '*.csproj'
    publishWebProjects: false
    modifyOutputPath: false
    zipAfterPublish: false
- task: ArchiveFiles@2
  displayName: "Archive files"
  inputs:
    rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
    includeRootFolder: false
    archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'
    artifactName: 'drop'

Implemente a sua aplicaçãoDeploy your app

Deve incluir uma das seguintes amostras de YAML no seu ficheiro YAML, dependendo do sistema operativo de alojamento.You must include one of the following YAML samples in your YAML file, depending on the hosting OS.

Aplicativo de função WindowsWindows function app

Pode utilizar o seguinte corte para implementar uma aplicação de função Windows:You can use the following snippet to deploy a Windows function app:

steps:
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: '<Azure service connection>'
    appType: functionApp
    appName: '<Name of function app>'
    #Uncomment the next lines to deploy to a deployment slot
    #deployToSlotOrASE: true
    #resourceGroupName: '<Resource Group Name>'
    #slotName: '<Slot name>'

Aplicativo de função LinuxLinux function app

Pode utilizar o seguinte corte para implementar uma aplicação de função Linux:You can use the following snippet to deploy a Linux function app:

steps:
- task: AzureFunctionApp@1
  inputs:
    azureSubscription: '<Azure service connection>'
    appType: functionAppLinux
    appName: '<Name of function app>'
    #Uncomment the next lines to deploy to a deployment slot
    #Note that deployment slots is not supported for Linux Dynamic SKU
    #deployToSlotOrASE: true
    #resourceGroupName: '<Resource Group Name>'
    #slotName: '<Slot name>'

Pipeline baseado em modeloTemplate-based pipeline

Os modelos em Azure DevOps são grupos pré-finidos de tarefas que constroem ou implementam uma aplicação.Templates in Azure DevOps are predefined groups of tasks that build or deploy an app.

Criar a sua aplicaçãoBuild your app

A forma como constrói a sua aplicação em Azure Pipelines depende da linguagem de programação da sua aplicação.How you build your app in Azure Pipelines depends on your app's programming language. Cada idioma tem passos de construção específicos que criam um artefacto de implantação.Each language has specific build steps that create a deployment artifact. Um artefacto de implementação é usado para atualizar a sua aplicação de função em Azure.A deployment artifact is used to update your function app in Azure.

Para utilizar modelos de construção incorporados, quando criar um novo oleoduto de construção, selecione Use o editor clássico para criar um pipeline usando modelos de design.To use built-in build templates, when you create a new build pipeline, select Use the classic editor to create a pipeline by using designer templates.

Selecione o editor clássico da Azure Pipelines

Depois de configurar a fonte do seu código, procure modelos de construção de Funções Azure.After you configure the source of your code, search for Azure Functions build templates. Selecione o modelo que corresponde ao seu idioma de aplicação.Select the template that matches your app language.

Selecione um modelo de construção de funções Azure

Em alguns casos, os artefactos de construção têm uma estrutura de pasta específica.In some cases, build artifacts have a specific folder structure. Pode ser necessário selecionar o nome da pasta de raiz Prepend para arquivar a caixa de verificação dos caminhos.You might need to select the Prepend root folder name to archive paths check box.

A opção de preparar o nome da pasta raiz

Aplicativos JavaScriptJavaScript apps

Se a sua aplicação JavaScript tiver uma dependência de módulos nativos do Windows, tem de atualizar a versão do grupo de agentes para O ANFITRIÃO VS2017.If your JavaScript app has a dependency on Windows native modules, you must update the agent pool version to Hosted VS2017.

Atualizar a versão da piscina do agente

Implemente a sua aplicaçãoDeploy your app

Quando criar um novo pipeline de lançamento, procure o modelo de libertação de Funções Azure.When you create a new release pipeline, search for the Azure Functions release template.

Procure o modelo de libertação de Funções Azure

A implantação numa ranhura de implantação não é suportada no modelo de libertação.Deploying to a deployment slot is not supported in the release template.

Criar um gasoduto de construção utilizando o Azure CLICreate a build pipeline by using the Azure CLI

Para criar um gasoduto de construção em Azure, utilize o az functionapp devops-pipeline create comando.To create a build pipeline in Azure, use the az functionapp devops-pipeline create command. O gasoduto de construção é criado para construir e libertar quaisquer alterações de código que sejam feitas no seu repo.The build pipeline is created to build and release any code changes that are made in your repo. O comando gera um novo ficheiro YAML que define o gasoduto de construção e libertação e, em seguida, compromete-o com o seu repo.The command generates a new YAML file that defines the build and release pipeline and then commits it to your repo. Os pré-requisitos para este comando dependem da localização do seu código.The prerequisites for this command depend on the location of your code.

  • Se o seu código estiver no GitHub:If your code is in GitHub:

    • Deve ter permissões de escrita para a sua subscrição.You must have write permissions for your subscription.

    • Deve ser o administrador do projeto em Azure DevOps.You must be the project administrator in Azure DevOps.

    • Você deve ter permissões para criar um token de acesso pessoal GitHub (PAT) que tenha permissões suficientes.You must have permissions to create a GitHub personal access token (PAT) that has sufficient permissions. Para mais informações, consulte os requisitos de permissão do GitHub PAT.For more information, see GitHub PAT permission requirements.

    • Você deve ter permissões para se comprometer com o ramo principal no seu repositório GitHub para que possa cometer o ficheiro YAML autogerido.You must have permissions to commit to the master branch in your GitHub repository so you can commit the autogenerated YAML file.

  • Se o seu código estiver em Azure Repos:If your code is in Azure Repos:

    • Deve ter permissões de escrita para a sua subscrição.You must have write permissions for your subscription.

    • Deve ser o administrador do projeto em Azure DevOps.You must be the project administrator in Azure DevOps.

Próximos passosNext steps