Implementación de Git local en Azure App Service
En esta guía se muestra cómo implementar la aplicación en Azure App Service desde un repositorio Git en la máquina local.
Nota:
Cuando la autenticación básica SCM está deshabilitada, la implementación de Git local no funciona y no se puede configurar la implementación de Git local en el Centro de implementación de la aplicación.
Requisitos previos
Para seguir los pasos de esta guía:
-
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Obtenga un repositorio Git local con el código que quiere 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 automáticas del servidor de compilación de Azure App Service, asegúrese de que la raíz del repositorio tenga los archivos correctos del 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.js o package.json con un script de inicio |
Python | *.py , requirements.txt o runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , index.html o iisstart.htm |
Trabajos web | <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. |
Functions | Consulte Implementación continua para Azure Functions. |
Para personalizar la implementación, puede incluir un archivo .deployment 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.
Nota
Si usa Visual Studio, deje que Visual Studio cree un repositorio automáticamente. El proyecto está listo inmediatamente para su implementación por medio de Git.
Configuración de un usuario de implementación
Consulte Configuración de credenciales de implementación para Azure App Service. Puede usar credenciales de ámbito de usuario o credenciales de ámbito de 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: 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, consulte Creación de una aplicación habilitada para Git en su lugar.
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: 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. Si lo desea, puede usar las credenciales del ámbito de aplicación en su lugar.
Implementación de la aplicación web
En una ventana del terminal local, cambie el directorio a la raíz del repositorio de Git y agregue un repositorio remoto de Git mediante la dirección URL que ha recibido de la aplicación. Si el método elegido no le proporciona una dirección URL, use
https://<app-name>.scm.azurewebsites.net/<app-name>.git
con el nombre de la aplicación en<app-name>
.git remote add azure <url>
Nota
Si ha creado una aplicación habilitada para Git en PowerShell mediante New-AzWebApp, el repositorio remoto ya se ha creado.
Envíe los cambios a la instancia remota de Azure con
git push azure master
(consulte Cambiar la rama de implementación).En la ventana Administrador de credenciales de Git, escriba las credenciales de ámbito de usuario o ámbito de aplicación, no las credenciales de inicio de sesión de Azure.
Si la dirección URL del repositorio remoto de Git ya contiene el nombre de usuario y la contraseña, no se le pedirá.
Revise el resultado. Es posible que vea la automatización específica para el entorno de tiempo de ejecución, como MSBuild para ASP.NET,
npm install
para Node.js ypip install
para Python.Busque su aplicación en Azure Portal para comprobar 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 van a pasar de master
a main
, debe asegurarse de que realiza la inserción en la rama correcta del repositorio de App Service de una de estas dos maneras:
Implemente en
master
explícitamente con un comando como: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 con 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, seleccionando Variables de entorno en Configuración y agregando una nueva configuración de aplicación con un nombreDEPLOYMENT_BRANCH
y un valor demain
.
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:
Message | Causa | Solución |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
La aplicación no está funcionando. | inicie la aplicación en Azure Portal. 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 obtener un listado de todos los remotos, junto con la dirección URL asociada. Compruebe que la URL para el repositorio correcto azure es correcta. Si lo necesita, suprima y vuelva a crear este repositorio remoto utilizando la URL correcta. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
No especificó una rama durante git push , o no ha establecido el valor 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 (consulte Cambiar la rama de implementación). |
src refspec [branchname] does not match any. |
Ha intentado agregar una rama que no es la principal en el repositorio remoto azure . |
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 se trata de insertar un repositorio Git de gran tamaño a través de HTTPS. | Cambie la configuración de Git en la máquina local para aumentar el tamaño de 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! anteriores a este error para obtener más contexto sobre el error. A continuación se indican las causas conocidas de este error y los mensajes npm ERR! :El archivo package.json tiene una estructura incorrecta: npm ERR! Couldn't read dependencies. Módulo nativo que no tiene una distribución binaria para Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 o bien npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |
Más recursos
- Servidor de compilación de App Service (documentación de Project Kudu)
- Implementación continua en Azure App Service
- Ejemplo: Creación de una aplicación web e implementación de código desde un repositorio local de Git (CLI de Azure)
- Ejemplo: Creación de una aplicación web e implementación de código desde un repositorio local de Git (PowerShell)