Compartir a través de


Configuración de la implementación continua en Azure App Service

En este artículo se explica cómo configurar la implementación continua (CD) en Azure App Service mediante la extracción de actualizaciones de GitHub, Bitbucket, Azure Repos u otros repositorios.

Prerrequisitos

Permisos de escritura en una aplicación de Azure App Service en un repositorio de control de código fuente.

Preparación del repositorio

Para obtener compilaciones automatizadas desde el servidor de compilación de App Service, asegúrese de que la raíz del repositorio tiene los archivos correctos en el proyecto.

Tiempo de ejecución Archivos del directorio raíz
ASP.NET (solo Windows) *.sln, *.csproj, o default.aspx.
ASP.NET Core *.sln o *.csproj.
PHP index.php.
Ruby (solo Linux) Gemfile.
Node.js. server.js, app.jso package.json con un script de inicio.
Pitón *.py, requirements.txt, o runtime.txt.
HTML default.htm, default.html, default.asp, index.htm, index.htmlo iisstart.htm.
WebJobs <job_name>/run.<extension> en App_Data/jobs/continuous para WebJobs continuos o App_Data/jobs/triggered para WebJobs desencadenados. Para más información, consulte la documentación de WebJobs de Kudu.
Funciones Consulte Implementación continua para Azure Functions.

Para personalizar la implementación, incluya un .deployment archivo en la raíz del repositorio. 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.

Sugerencia

Visual Studio puede crear un repositorio automáticamente. Con este método, el proyecto está listo para su implementación a través de Git.

Habilitar la implementación continua

  1. En Azure Portal, vaya a la página de la aplicación de App Service y seleccione Centro de implementación en el menú de navegación izquierdo.

  2. En la pestaña Configuración , en Origen, seleccione el tipo de repositorio de control de código fuente.

    Captura de pantalla que muestra cómo elegir el origen de implementación.

  3. Siga las instrucciones del tipo de origen para configurar la implementación.

    Captura de pantalla que muestra cómo configurar el origen de implementación.

Todos los orígenes enumerados pueden compilarse con App Service Build Service. Algunas fuentes también se pueden construir con GitHub Actions o Azure Pipelines. Para obtener más información, consulte Proveedores de compilación.

Acciones de GitHub es el proveedor de compilación predeterminado de GitHub. Para cambiar el proveedor, seleccione Cambiar proveedor, seleccione App Service Build Service o Azure Pipelines y, a continuación, seleccione Aceptar.

Si es necesario, seleccione Autorizar y siga las solicitudes de autorización para GitHub. Para realizar la implementación desde el repositorio de otro usuario, seleccione Cambiar cuenta.

  1. Seleccione la organización, el repositorio y la rama de GitHub adecuados.

    Si no encuentra una organización o repositorio, es posible que tenga que habilitar más permisos en GitHub. Para más información, consulte Administración del acceso a los repositorios de la organización.

  2. En Tipo de autenticación, seleccione Identidad asignada por el usuario para mejorar la seguridad.

    Si la cuenta de Azure tiene los permisos necesarios, App Service crea una identidad administrada asignada por el usuario o puede elegir una identidad administrada existente. Si no tiene los permisos necesarios, trabaje con el administrador de Azure para crear una identidad con el rol necesario en la aplicación y, a continuación, selecciónelo en la lista desplegable.

  3. App Service selecciona una plantilla de flujo de trabajo basada en la configuración del entorno de lenguaje de la aplicación y la incorpora en el repositorio de GitHub seleccionado. Opcionalmente, puede seleccionar Vista previa del archivo para ver el archivo de flujo de trabajo antes de guardar los cambios.

  4. Seleccione Guardar.

Las nuevas confirmaciones del repositorio y la rama seleccionados ahora se implementan continuamente en su aplicación de App Service. Puede hacer el seguimiento de las confirmaciones y las implementaciones en la pestaña Registros.

Deshabilitación de la implementación continua

Para deshabilitar la implementación continua para un origen conectado:

  1. En Azure Portal, vaya a la página de la aplicación de App Service y seleccione Centro de implementación en el menú de navegación izquierdo.

  2. En la pestaña Configuración , seleccione Desconectar.

    Captura de pantalla que muestra cómo desconectar la sincronización de carpetas en la nube con la aplicación de App Service en Azure Portal.

  3. Seleccione Aceptar.

Para GitHub, el archivo de flujo de trabajo permanece en el repositorio de forma predeterminada, pero ya no verá el progreso integrado en la pestaña Registros del Centro de implementación.

¿Cuáles son los proveedores de compilación?

Los proveedores de compilación le ayudan a crear una solución de integración continua y entrega continua (CI/CD) con Azure App Service mediante la automatización de la compilación, la prueba y la implementación. Algunos orígenes de implementación ofrecen varias opciones de proveedor de compilación. Todos los orígenes enumerados pueden compilarse con App Service Build Service.

No está limitado a las opciones de proveedor de compilación enumeradas, pero App Service le ayuda a configurar rápidamente las opciones enumeradas y empezar a obtener el registro de implementación integrado.

Acciones de GitHub

El proveedor de construcción de acciones de GitHub solo está disponible para fuentes de GitHub y es el valor predeterminado para las implementaciones de GitHub. El proveedor de compilación configura CI/CD al depositar un archivo de flujo de trabajo de GitHub Actions en tu repositorio de GitHub, que gestiona las tareas de construcción e implementación de App Service.

Para la autenticación básica, el proveedor de compilación de GitHub Actions incluye el perfil de publicación de tu aplicación como un secreto de GitHub. El archivo de flujo de trabajo usa este secreto para autenticarse con App Service.

Para la identidad asignada por el usuario, App Service habilita la autenticación recomendada de Microsoft OpenID Connect y configura los recursos necesarios en Azure y GitHub. Para obtener más información, consulte ¿Qué hace la opción de identidad asignada por el usuario para Acciones de GitHub?

El proveedor de compilación acciones de GitHub captura información de los registros de ejecución del flujo de trabajo y la muestra en la pestaña Registros del Centro de implementación de la aplicación.

Puede personalizar el proveedor de compilación de Acciones de GitHub de varias maneras:

  • Personalice el archivo de flujo de trabajo después de generarlo en el repositorio de GitHub. Para más información, consulte Sintaxis de flujo de trabajo para Acciones de GitHub. Implemente el flujo de trabajo personalizado en App Service con la azure/webapps-deploy acción .
  • Si la rama seleccionada está protegida, obtenga una vista previa del archivo de flujo de trabajo sin guardar la configuración. Personalice el archivo y, a continuación, agréguelo manualmente al repositorio. Este método no ofrece la integración de registros con Azure Portal.
  • Implemente mediante una entidad de servicio de Microsoft Entra ID en lugar de usar la autenticación básica o una identidad asignada por el usuario. Este método no se puede configurar en el portal.

Servicio de compilación de App Service

El servicio de compilación de App Service es la implementación y el motor de compilación nativos de App Service. Al seleccionar esta opción, App Service agrega un webhook al repositorio que autorizó. Cualquier inserción de código en el repositorio desencadena el webhook y App Service extrae los cambios y realiza las tareas de implementación. Para obtener más información, consulte Implementación desde GitHub (Kudu).

El servicio de compilación de App Service requiere la autenticación básica del Administrador de control de código fuente (SCM) para que el webhook funcione. La autenticación básica es menos segura que otros métodos de autenticación. Para obtener más información, consulte:

Azure Pipelines (Canales de Azure)

Azure Pipelines es el componente de compilación de Azure DevOps. Puede configurar una canalización para compilar, probar e implementar la aplicación en App Service desde cualquier repositorio de origen compatible.

Para usar Azure Pipelines como proveedor de compilación, seleccione la opción Azure Pipelines en el Centro de implementación de App Service y, a continuación, vaya directamente a Azure DevOps para configurar la canalización. Para más información, consulte Implementación de App Service mediante Azure Pipelines.

Preguntas más frecuentes

¿Cómo funciona el proveedor de compilación de Acciones de GitHub si la autenticación básica está deshabilitada?

El proveedor de compilación de Acciones de GitHub no funciona con la autenticación básica si la autenticación básica está deshabilitada. Pruebe a usar Acciones de GitHub con la opción de identidad asignada por el usuario en su lugar. Para obtener más información, consulte Implementación sin autenticación básica.

¿Qué ocurre con mi aplicación durante la implementación que puede provocar errores o comportamientos imprevisibles?

Los métodos de implementación admitidos oficialmente realizan cambios en los archivos de la carpeta /home/site/wwwroot que se usan para ejecutar la aplicación. La implementación puede producir un error debido a archivos bloqueados. La aplicación también puede comportarse de forma impredecible durante la implementación si los archivos no se actualizan al mismo tiempo, lo que no es deseable para una aplicación orientada al cliente.

Hay varias maneras de evitar estos problemas.

¿Qué hace la opción de identidad asignada por el usuario para Acciones de GitHub?

Al seleccionar Identidad asignada por el usuario para el origen de GitHub , App Service configura todos los recursos necesarios en Azure y GitHub. App Service habilita la autenticación recomendada de Microsoft OpenID Connect con Acciones de GitHub.

En concreto, App Service realiza las siguientes operaciones:

  • Crea una credencial federada entre una identidad administrada asignada por el usuario en Azure y el repositorio y la rama seleccionados en GitHub.
  • Crea los secretos AZURE_CLIENT_ID, AZURE_TENANT_ID y AZURE_SUBSCRIPTION_ID a partir de la credencial federada en el repositorio de GitHub seleccionado.
  • Asigna la identidad a su aplicación.

Después, puede usar la Azure/login acción en un flujo de trabajo de Acciones de GitHub en el repositorio de GitHub para autenticarse con la aplicación mediante OpenID Connect. Por ejemplo, vea Adición del archivo de flujo de trabajo al repositorio de GitHub.

Si su cuenta de Azure tiene los permisos necesarios, App Service crea una identidad administrada asignada por el usuario y la configura automáticamente. Esta identidad no se muestra en la página Identidad de la aplicación. Si la cuenta de Azure no tiene los permisos necesarios, debe seleccionar una identidad existente con el rol necesario.

¿Por qué veo el error "No tiene permisos suficientes en esta aplicación para asignar acceso basado en roles a una identidad administrada y configurar credenciales federadas"?

El mensaje indica que la cuenta de Azure no tiene los permisos necesarios para crear una identidad administrada asignada por el usuario para Acciones de GitHub. Necesita los siguientes permisos, limitados a su aplicación:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

De forma predeterminada, los roles Administrador de acceso de usuario y Propietario de Azure tienen estos permisos, pero el rol Colaborador no. Si no tiene los permisos necesarios, trabaje con el administrador de Azure para crear una identidad administrada asignada por el usuario que tenga el rol Colaborador de sitios web . Después, puede seleccionar esa identidad en la lista desplegable Identidad para el origen de GitHub en el Centro de implementación de App Service.

Para obtener más información sobre el uso de pasos alternativos, consulte Implementación en App Service mediante Acciones de GitHub.

¿Por qué veo el error "Esta identidad no tiene permisos de escritura en esta aplicación. Seleccione otra identidad o trabaje con el administrador para conceder el rol Colaborador del sitio web a su identidad en esta aplicación"?

El mensaje indica que la identidad administrada asignada por el usuario seleccionada no tiene el rol necesario para [habilitar OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions) entre el repositorio de GitHub y la aplicación de App Service. La identidad debe tener el rol Propietario, Colaborador o Colaborador de sitios web en la aplicación. El rol con privilegios mínimos que necesita la identidad es Colaborador de sitios web.