Compartir a través de


Implementación en Azure App Service mediante Git localmente

En este artículo se muestra cómo implementar la aplicación en el Azure App Service desde un repositorio de Git en el equipo local.

Nota

Este método de implementación requiere Autenticación básica del Administrador de control de código fuente (SCM), que es menos segura que otros métodos de implementación. Si la implementación local de Git no funciona, no podrá configurar la implementación local de Git en el Centro de implementación de la aplicación.

Requisitos previos

Para completar los pasos que se describen en este artículo:

  • Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.

  • Instale Git.

  • Disponga de un repositorio local de Git con código para implementar. Para descargar un repositorio de ejemplo, ejecute el comando siguiente en la ventana del terminal local:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    

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.

Configuración de un usuario de implementación

Aprenda a configurar las credenciales de implementación para Azure App Service. Puede usar la información de inicio de sesión en el ámbito del usuario o en el ámbito de la aplicación.

Creación de una aplicación habilitada para Git

Si ya tiene una aplicación App Service y quiere configurar una implementación de Git local para ella, consulte Configuración de una aplicación existente en su lugar.

Ejecute az webapp create con la opción --deployment-local-git.

Por ejemplo:

az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git

La salida contiene una dirección URL como la del ejemplo https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Use esta dirección URL para implementar la aplicación en el siguiente paso.

Configuración de una aplicación existente

Si aún no tiene una aplicación, comience con Creación de una aplicación habilitada para Git.

Ejecute az webapp deployment source config-local-git.

Por ejemplo:

az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>

La salida contiene una dirección URL como la del ejemplo https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Use esta dirección URL para implementar la aplicación en el siguiente paso.

Sugerencia

Esta dirección URL contiene el nombre de usuario de la implementación de ámbito de usuario. En su lugar, puede usar la información de inicio de sesión en el ámbito de la aplicación.

Implementación de la aplicación web

  1. En una ventana de Terminal Windows, cambie el directorio a la raíz de su repositorio de Git. Agregue un Git remoto usando la dirección URL de su aplicación. Si el método que utiliza no proporciona una dirección URL, use https://<app-name>.scm.azurewebsites.net/<app-name>.git con el nombre de su aplicación.

    git remote add azure <url>
    
  2. Haga inserciones a la rama remota de Azure ejecutando git push azure master.

    Para más información, consulte Cambiar la rama de implementación.

  3. En el cuadro de diálogo Administrador de credenciales de Git, introduzca la información de inicio de sesión en el ámbito del usuario o de la aplicación, no la información de inicio de sesión en Azure.

    Si su dirección URL remota de Git ya contiene su nombre de usuario y contraseña, no se le pedirá que los escriba.

  4. Revise el resultado. Es posible que vea automatizaciones específicas del tiempo de ejecución, como MSBuild para ASP.NET, npm install para Node.js o pip install para Python.

  5. En Azure Portal, vaya a su aplicación para verificar que el contenido está implementado.

Cambiar la rama de implementación

Al insertar confirmaciones en el repositorio de App Service, App Service implementa los archivos de la rama master de forma predeterminada. Dado que muchos repositorios de Git están pasando de master a main, asegúrese de hacer las inserciones en la rama correcta en el repositorio de App Service de una de estas dos maneras:

  • Implemente explícitamente en master ejecutando un comando como en este ejemplo:

    git push azure main:master
    
  • Cambie la rama de implementación estableciendo la configuración de la aplicación DEPLOYMENT_BRANCH y, a continuación, inserte las confirmaciones en la rama personalizada.

    Para hacerlo usando la CLI de Azure:

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    

    También puede cambiar la configuración de la aplicación DEPLOYMENT_BRANCH en Azure Portal:

    1. En Configuración, seleccione Variables de entorno.
    2. Agregue una configuración de la aplicación que tenga el nombre DEPLOYMENT_BRANCH y el valor main.

Solución de problemas de implementación

Puede ver los siguientes mensajes de error comunes cuando usa Git para publicar en una aplicación de App Service en Azure:

Mensaje Causa Resolución
Unable to access '[siteURL]': Failed to connect to [scmAddress] La aplicación no se está ejecutando. En Azure Portal, inicie la aplicación. La implementación de Git no está disponible cuando la aplicación web está detenida.
Couldn't resolve host 'hostname' La información de dirección del repositorio remoto de azure es incorrecta. Use el comando git remote -v para enumerar todas las direcciones remotas y sus direcciones URL asociadas. Verifique que la dirección URL para el azure remoto es correcta. Si es necesario, elimine y después vuelva a crear esta rama remota usando la dirección URL correcta.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. No especificó una rama cuando ejecutó git push o no ha establecido el valor de push.default en .gitconfig. Vuelva a ejecutar git push y especifique la rama principal: git push azure main.
Error - Changes committed to remote repository but deployment to website failed. Insertó una rama local que no coincide con la rama de implementación de la aplicación en azure. Compruebe que la rama actual sea master. Para cambiar la rama predeterminada, use la configuración de aplicación DEPLOYMENT_BRANCH. Para más información, consulte Cambiar rama de implementación.
src refspec [branchname] does not match any. Intentó agregar una rama que no es la main en el azure remoto. Vuelva a ejecutar git push y especifique la rama principal: git push azure main.
RPC failed; result=22, HTTP code = 5xx. Este error puede producirse si prueba a enviar un repositorio de Git de gran tamaño a través de HTTPS. Cambie la configuración de Git en el ordenador local para establecer un valor más alto para postBuffer. Por ejemplo: git config --global http.postBuffer 524288000.
Error - Changes committed to remote repository but your web app not updated. Implementó una aplicación Node.js con un archivo package.json que especifica los módulos adicionales requeridos. Revise los mensajes de error npm ERR! que aparecen antes de este error para obtener más contexto. Las siguientes son causas conocidas de este error y los mensajes de npm ERR! correspondientes:

El archivo package.json tiene una estructura incorrecta: npm ERR! Couldn't read dependencies.

El módulo nativo no tiene una distribución binaria para Windows:
npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1
o
npm ERR! [modulename@version] preinstall: \make \|\| gmake\