Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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.js o 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.html o 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
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>
Nota
Si ha creado una aplicación habilitada para Git en PowerShell utilizando New-AzWebApp, la rama remota ya está creada.
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.
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.
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.
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:- En Configuración, seleccione Variables de entorno.
- Agregue una configuración de la aplicación que tenga el nombre
DEPLOYMENT_BRANCH
y el valormain
.
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\ |
Contenido relacionado
- 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)