Implementación continua en Azure App ServiceContinuous deployment to Azure App Service

Azure App Service le permite realizar implementaciones continuas desde los repositorios de GitHub, BitBucket y Azure Repos al incorporar las últimas actualizaciones.Azure App Service enables continuous deployment from GitHub, BitBucket, and Azure Repos repositories by pulling in the latest updates. En este artículo le mostramos cómo usar Azure Portal para implementar continuamente la aplicación a través del servicio de compilación Kudu o Azure Pipelines.This article shows you how to use the Azure portal to continuously deploy your app through the Kudu build service or Azure Pipelines.

Para obtener más información sobre los servicios de control de código fuente, consulte Crear un repositorio (GitHub), Crear un repositorio (BitBucket) o Crear un nuevo repositorio de Git (Azure Repos).For more information on the source control services, see Create a repo (GitHub), Create a repo (BitBucket), or Create a new Git repo (Azure Repos).

Preparación del repositorioPrepare your repository

Para obtener compilaciones automáticas del servidor de compilación de Kudu para Azure App Service, asegúrese de que la raíz del repositorio tiene los archivos correctos del proyecto.To get automatic builds from Azure App Service Kudu build server, make sure that your repository root has the correct files in your project.

Tiempo de ejecuciónRuntime Archivos del directorio raízRoot directory files
ASP.NET (solo Windows)ASP.NET (Windows only) *.sln, *.csproj o default.aspx*.sln, *.csproj, or default.aspx
ASP.NET CoreASP.NET Core *.sln o *.csproj*.sln or *.csproj
PHPPHP index.phpindex.php
Ruby (solo Linux)Ruby (Linux only) GemfileGemfile
Node.jsNode.js server.js, app.js o package.json con un script de inicioserver.js, app.js, or package.json with a start script
PythonPython *.py, requirements.txt o runtime.txt*.py, requirements.txt, or runtime.txt
HTMLHTML default.htm, default.html, default.asp, index.htm, index.html o iisstart.htmdefault.htm, default.html, default.asp, index.htm, index.html, or iisstart.htm
Trabajos webWebJobs <nombre_de_trabajo>/run.<extensión> en App_Data/jobs/continuous para WebJobs continuos o App_Data/jobs/triggered para WebJobs desencadenados.<job_name>/run.<extension> under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. Para más información, consulte la documentación de WebJobs de Kudu.For more information, see Kudu WebJobs documentation.
FunctionsFunctions Consulte Implementación continua para Azure Functions.See Continuous deployment for Azure Functions.

Para personalizar la implementación puede incluir un archivo .deployment en la raíz del repositorio.To customize your deployment, include a .deployment file in the repository root. Para más información, consulte el artículo sobre la personalización de las implementaciones y el artículo sobre el script de implementación personalizado.For more information, see Customize deployments and Custom deployment script.

Nota

Si desarrolla en Visual Studio, deje que Visual Studio cree un repositorio en su lugar.If you develop in Visual Studio, let Visual Studio create a repository for you. El proyecto está listo inmediatamente para su implementación mediante GIT.The project is immediately ready to be deployed by using Git.

Autorizar Azure App ServiceAuthorize Azure App Service

Para usar Azure Repos, asegúrese de que su organización de Azure DevOps esté vinculada a su suscripción de Azure.To use Azure Repos, make sure your Azure DevOps organization is linked to your Azure subscription. Para obtener más información, consulte Configurar una cuenta de Azure DevOps Services para que se pueda implementar en una aplicación web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

En cuanto a Bitbucket o GitHub, autorice a Azure App Service a conectarse a su repositorio.For Bitbucket or GitHub, authorize Azure App Service to connect to your repository. Solo necesita realizar la autorización con un servicio de control de código fuente una vez.You only need to authorize with a source control service once.

  1. En Azure Portal, busque y seleccione App Services.In the Azure portal, search for and select App Services.

    Busque App Services.

  2. Seleccione la aplicación que quiere configurar.Select the web app you want to deploy.

    Seleccione la aplicación.

  3. En la página de la aplicación, seleccione Deployment Center (Centro de implementación) en el menú de la izquierda.On the app page, select Deployment Center in the left menu.

  4. En la página del centro de implementación, seleccione GitHub o Bitbucket y, a continuación, seleccione Authorize (Autorizar).On the Deployment Center page, select GitHub or Bitbucket, and then select Authorize.

    Seleccione el servicio de control de código fuente y, a continuación, Autorizar.

  5. Inicie sesión en el servicio si es necesario y siga las indicaciones de autorización.Sign in to the service if necessary, and follow the authorization prompts.

Habilitación de la implementación continuaEnable continuous deployment

Después de autorizar un servicio de control de código fuente, configure su aplicación para la implementación continua a través del servidor de compilación de App Service para Kudu integrado o mediante Azure Pipelines.After you authorize a source control service, configure your app for continuous deployment through the built-in Kudu App Service build server, or through Azure Pipelines.

Opción 1: use el servicio de compilación de App ServiceOption 1: Use the App Service build service

Puede usar el servidor de compilación de App Service para Kudu integrado para realizar implementaciones continuas desde GitHub, Bitbucket o Azure Repos.You can use the built-in Kudu App Service build server to continuously deploy from GitHub, Bitbucket, or Azure Repos.

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación web que quiere implementar.In the Azure portal, search for and select App Services, and then select the web app you want to deploy.

  2. En la página de la aplicación, seleccione Deployment Center (Centro de implementación) en el menú de la izquierda.On the app page, select Deployment Center in the left menu.

  3. Seleccione su proveedor de control de código fuente autorizado en la página del centro de implementación y seleccione Continue (Continuar).Select your authorized source control provider on the Deployment Center page, and select Continue. En cuanto a GitHub o Bitbucket, también puede seleccionar Change account (Cambiar cuenta) para cambiar la cuenta autorizada.For GitHub or Bitbucket, you can also select Change account to change the authorized account.

    Nota

    Para usar Azure Repos, asegúrese de que su organización de Azure DevOps Services esté vinculada a su suscripción de Azure.To use Azure Repos, make sure your Azure DevOps Services organization is linked to your Azure subscription. Para obtener más información, consulte Configurar una cuenta de Azure DevOps Services para que se pueda implementar en una aplicación web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

  4. En cuanto a GitHub o Azure Repos, en la página para compilar el proveedor, seleccione App Service build service (Servicio de compilación de App Service) y, a continuación, Continue (Continuar).For GitHub or Azure Repos, on the Build provider page, select App Service build service, and then select Continue. Bitbucket siempre usa el servicio de compilación de App Service.Bitbucket always uses the App Service build service.

    Seleccione el servicio de compilación de App Service y, a continuación, seleccione Continuar.

  5. En la página de configuración:On the Configure page:

    • Para GitHub, despliegue el menú y seleccione la organización, el repositorio y la rama que quiere implementar continuamente.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Nota

      Si no ve ningún repositorio, es posible que deba autorizar Azure App Service en GitHub.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Vaya a su repositorio de GitHub y a Settings (Configuración) > Applications (Aplicaciones) > Authorized OAuth Apps (Aplicaciones OAuth autorizadas).Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Seleccione Azure App Service y Grant (Conceder).Select Azure App Service, and then select Grant. En el caso de los repositorios de la organización, debe ser propietario de la organización para conceder los permisos.For organization repositories, you must be an owner of the organization to grant the permissions.

    • Para Bitbucket, seleccione el equipo , el repositorio y la rama de Bitbucket que quiere implementar continuamente.For Bitbucket, select the Bitbucket Team, Repository, and Branch you want to deploy continuously.

    • Para Azure Repos, seleccione la organización de Azure DevOps , el proyecto, el repositorio y la rama que quiere implementar continuamente.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously.

      Nota

      Si su organización de Azure DevOps no figura en la lista, asegúrese de que esté vinculada a su suscripción de Azure.If your Azure DevOps organization isn't listed, make sure it's linked to your Azure subscription. Para obtener más información, consulte Configurar una cuenta de Azure DevOps Services para que se pueda implementar en una aplicación web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app..

  6. Seleccione Continuar.Select Continue.

    Complete la información del repositorio y seleccione Continuar.

  7. Después de configurar el proveedor de compilación, revise la configuración en la página de resumen y seleccione Finish (Finalizar).After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Las nuevas confirmaciones del repositorio y la rama seleccionados ahora se implementan continuamente en su aplicación de App Service.New commits in the selected repository and branch now deploy continuously into your App Service app. Puede realizar el seguimiento de las confirmaciones y las implementaciones en la página del centro de implementación.You can track the commits and deployments on the Deployment Center page.

    Seguimiento de confirmaciones e implementaciones en el centro de implementación

Opción 2: Use Azure PipelinesOption 2: Use Azure Pipelines

Si su cuenta tiene los permisos necesarios, puede configurar Azure Pipelines para que se implemente continuamente desde los repositorios de GitHub o Azure Repos.If your account has the necessary permissions, you can set up Azure Pipelines to continuously deploy from GitHub or Azure Repos repositories. Para obtener más información sobre la implementación a través de Azure Pipelines, consulte Implementación de una aplicación web en Azure App Services.For more information about deploying through Azure Pipelines, see Deploy a web app to Azure App Services.

Para que Azure App Service cree la entrega continua de Azure Pipelines en su organización de Azure DevOps:For Azure App Service to create continuous delivery Azure Pipelines in your Azure DevOps organization:

  • Su cuenta de Azure debe tener permisos para escribir en Azure Active Directory y crear un servicio.Your Azure account must have permissions to write to Azure Active Directory and create a service.

  • Su cuenta de Azure debe tener el rol Propietario en su suscripción de Azure.Your Azure account must have the Owner role in your Azure subscription.

  • Debe ser administrador en el proyecto de Azure DevOps que quiera usar.You must be an administrator in the Azure DevOps project you want to use.

Para configurar Azure Pipelines (versión preliminar):To configure Azure Pipelines (Preview):

  1. En Azure Portal, busque y seleccione App Services y luego elija la aplicación web que quiere implementar.In the Azure portal, search for and select App Services, and then select the web app you want to deploy.

  2. En la página de la aplicación, seleccione Deployment Center (Centro de implementación) en el menú de la izquierda.On the app page, select Deployment Center in the left menu.

  3. En la página Build provider (Compilar proveedor), seleccione Azure Pipelines (Preview) (Azure Pipelines [versión preliminar]) y Continue (Continuar).On the Build provider page, select Azure Pipelines (Preview), and then select Continue.

  4. En la página de configuración , en la sección Code (Código):On the Configure page, in the Code section:

    • Para GitHub, despliegue el menú y seleccione la organización, el repositorio y la rama que quiere implementar continuamente.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Nota

      Si no ve ningún repositorio, es posible que deba autorizar Azure App Service en GitHub.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Vaya a su repositorio de GitHub y a Settings (Configuración) > Applications (Aplicaciones) > Authorized OAuth Apps (Aplicaciones OAuth autorizadas).Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Seleccione Azure App Service y Grant (Conceder).Select Azure App Service, and then select Grant. En el caso de los repositorios de la organización, debe ser propietario de la organización para conceder los permisos.For organization repositories, you must be an owner of the organization to grant the permissions.

    • Para Azure Repos, seleccione la organización de Azure DevOps , el proyecto, el repositorio y la rama que quiere implementar continuamente o configure una organización de Azure DevOps nueva.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously, or configure a new Azure DevOps organization.

      Nota

      Si su organización Azure DevOps existente no figura en la lista, es posible que deba vincularla a su suscripción de Azure.If your existing Azure DevOps organization isn't listed, you may need to link it to your Azure subscription. Para obtener más información, consulte Define your CD release pipeline (Definir la canalización de versión de CD).For more information, see Define your CD release pipeline.

  5. Seleccione Continuar.Select Continue.

  6. Para Azure Repos, en la sección de compilación, especifique el marco de lenguaje que Azure Pipelines debe usar para ejecutar tareas de compilación y luego seleccione Continuar.For Azure Repos, in the Build section, specify the language framework that Azure Pipelines should use to run build tasks, and then select Continue.

  7. En la página Test (Probar), decida si quiere habilitar las pruebas de carga y luego seleccione Continue (Continuar).On the Test page, choose whether to enable load tests, and then select Continue.

  8. Dependiendo de su plan de tarifa de App Service, puede ver una página Deploy to staging (Implementar en el almacenamiento provisional).Depending on your App Service plan pricing tier, you may see a Deploy to staging page. Dcida si quiere habilitar las ranuras de implementación y seleccione Continue (Continuar).Choose whether to enable deployment slots, and then select Continue.

    Nota

    Azure Pipelines no permite la entrega continua al espacio de producción.Azure Pipelines doesn't allow continuous delivery to the production slot. Esta restricción evita implementaciones accidentales en la producción.This restriction prevents accidental deployments to production. Configure la entrega continua en un espacio de ensayo, compruebe los cambios del mismo e intercambie los espacios cuando esté listo.Set up continuous delivery to a staging slot, verify the changes there, and then swap the slots when you are ready.

  9. Después de configurar el proveedor de compilación, revise la configuración en la página de resumen y seleccione Finish (Finalizar).After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Las nuevas confirmaciones del repositorio y la rama seleccionados ahora se implementan continuamente en su aplicación de App Service.New commits in the selected repository and branch now deploy continuously into your App Service app. Puede realizar el seguimiento de las confirmaciones y las implementaciones en la página del centro de implementación.You can track the commits and deployments on the Deployment Center page.

    Seguimiento de confirmaciones e implementaciones en el centro de implementación

Deshabilitación de la implementación continuaDisable continuous deployment

Para deshabilitar la implementación continua, seleccione Disconnect (Desconectar) en la parte superior de la página Deployment Center (Centro de implementación) de la aplicación.To disable continuous deployment, select Disconnect at the top of your app's Deployment Center page.

Deshabilitación de la implementación continua

¿Qué ocurre con mi aplicación durante la implementación?What happens to my app during deployment?

Todos los métodos de implementación admitidos oficialmente realizan cambios en los archivos de la carpeta /home/site/wwwroot de la aplicación.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Estos archivos se usan para ejecutar la aplicación.These files are used to run your app. Por lo tanto, se puede producir un error en la implementación debido a archivos bloqueados.Therefore, the deployment can fail because of locked files. Es posible que la aplicación también se comporte de forma impredecible durante la implementación, ya que no todos los archivos se actualizan al mismo tiempo.The app may also behave unpredictably during deployment, because not all the files updated at the same time. Esto no es deseable para una aplicación orientada al cliente.This is undesirable for a customer-facing app. Hay varias formas de evitar estos problemas:There are a few different ways to avoid these issues:

Uso de repositorios no admitidosUse unsupported repos

En el caso de las aplicaciones de Windows, puede configurar manualmente la implementación continua desde un repositorio GIT o de Mercurial en la nube que el portal no admite directamente, como GitLab.For Windows apps, you can manually configure continuous deployment from a cloud Git or Mercurial repository that the portal doesn't directly support, such as GitLab. Para ello, elija el cuadro Externo en la página Centro de implementación.You do it by choosing the External box in the Deployment Center page. Para obtener más información, consulte Configuración de la implementación continua mediante pasos manuales.For more information, see Set up continuous deployment using manual steps.

Recursos adicionalesAdditional resources