Compartir a través de


Implementación en Azure App Service mediante Git local

Una de las formas más sencillas de implementar código es desde su ordenador local. 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

La implementación de Git local requiere la 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 autenticación básica está deshabilitada, no puede configurar la implementación de Git local en el Centro de implementación de la aplicación.

Requisitos previos

Para completar los pasos de este artículo, necesitará lo siguiente:

  • Una cuenta de Azure y una suscripción con permiso para crear recursos de App Services. Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.

  • Git instalado y un repositorio de Git local que contiene el código de la aplicación que se va a implementar.

    Para clonar un repositorio de aplicaciones de Node.js de ejemplo, ejecute el comando siguiente en la ventana del terminal local de Bash:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Si quiere usar los comandos de la CLI de Azure, la versión más reciente de la CLI de Azure instalada en el equipo local. Inicie sesión en Azure con az login.

  • Si desea ejecutar los comandos de Azure PowerShell, la versión más reciente de Azure PowerShell instalada. Inicie sesión en Azure con Connect-AzAccount.

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.

Credenciales de usuario de implementación

Necesita credenciales de usuario de implementación para autenticar e implementar la aplicación. Son diferentes de las credenciales de suscripción de Azure y puede usar credenciales de ámbito de usuario o de ámbito de aplicación .

Un usuario de implementación de ámbito de usuario para la implementación local de Git solo necesita un nombre de usuario, no una contraseña. Puede establecer el nombre de usuario del ámbito de usuario ejecutando el comando az webapp deployment user set --user-name <username>de la CLI de Azure o en Ámbito de usuario en la pestaña Credenciales de Git/FTPS locales del Centro de implementación de una aplicación.

Una vez creado el usuario de implementación de ámbito de usuario, puede usarlo para todas las aplicaciones de App Service a las que tiene acceso. Para obtener más información, consulte Configuración de credenciales de ámbito de usuario.

Un usuario de implementación de ámbito de aplicación es específico de la aplicación y se crea automáticamente al crear una aplicación. Puede obtener las credenciales de usuario de ámbito de aplicación que se usarán para la implementación desde la pestaña Credenciales de Git/FTPS local del Centro de implementación de la aplicación.

Creación y configuración de una aplicación habilitada para Git

Puede crear y configurar una aplicación habilitada para Git o configurar la implementación local de Git para una aplicación preexistente mediante la CLI de Azure, Azure PowerShell o Azure Portal.

  • Para crear una nueva aplicación web configurada para la implementación de Git local, ejecute az webapp create con la --deployment-local-git opción . Por ejemplo:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:24-lts" --deployment-local-git
    
  • Para configurar la implementación de Git local para una aplicación ya existente, ejecute az webapp deployment source config-local-git. Por ejemplo:

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

Cualquier comando genera una salida que incluye una dirección URL, como:

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

La dirección URL anterior contiene el nombre de usuario de implementación de ámbito de usuariocontoso-user. Si no tiene un nombre de usuario de ámbito de implementación, la dirección URL usa el nombre de usuario del ámbito de aplicación, por ejemplo https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

Use esta dirección URL de clonación de Git para implementar la aplicación en el paso siguiente.

Implementación de la aplicación web

Para implementar la aplicación en Azure, cree una rama remota si es necesario, asegúrese de que va a implementar en la rama correcta y, a continuación, inserte el código en el remoto.

Creación de la rama remota

Si utilizó Azure PowerShell New-AzWebApp para crear la aplicación a partir del código de ejemplo, el azure remoto ya fue creado. De lo contrario, siga estas instrucciones para crear el remoto:

  1. En un terminal local, cambie el directorio a la raíz del repositorio git clonado.

  2. Agregue un Git remoto denominado azure mediante la dirección URL de clonación de Git. Si no conoce la dirección URL de clonación de Git, use https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Insertar en la rama correcta

Los repositorios de App Service implementan archivos en la master rama de forma predeterminada. Si los archivos locales preexistentes están en la master rama del repositorio, ahora puede implementar la aplicación ejecutando git push azure master.

Sin embargo, muchos repositorios de Git, incluido el repositorio de código de ejemplo de este artículo, usan main u otro nombre de rama predeterminado. Para realizar la implementación en la rama correcta, debe implementar explícitamente en la rama remota master o cambiar la rama de implementación a main u otro nombre de rama e implementarla en esa rama.

Implemente explícitamente en master desde la rama main mediante el siguiente comando push:

git push azure main:master

O bien, cambie la configuración de la aplicación DEPLOYMENT_BRANCH a main y, a continuación, inserte directamente en main, como se indica a continuación:

  • CLI de Azure:

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

    1. En la página del portal de la aplicación, seleccione Variables de entorno en Configuración en el menú de navegación izquierdo.
    2. Seleccione Agregar, agregue una configuración de aplicación con el nombre DEPLOYMENT_BRANCH y el valor principal y seleccione Aplicar.
    3. En la ventana del terminal, ejecute git push azure main.

Finalizar y comprobar la implementación

Si aparece el cuadro de diálogo Administrador de credenciales de Git después de insertar el código, escriba el nombre de usuario de implementación de ámbito de usuario o el nombre de usuario y la contraseña del ámbito de aplicación. Si la dirección URL remota de Git ya contiene la información de inicio de sesión, no se le pedirá que lo escriba.

Revise la salida del push comando. Es posible que vea automatización específica del entorno de ejecución, como npm install para Node.js, MSBuild para ASP.NET o pip install para Python. Si recibe errores, consulte Solución de problemas de implementación.

Vaya a Azure Portal y compruebe que la aplicación se implementó correctamente seleccionando el vínculo Dominio predeterminado en la página Información general de la aplicación. La aplicación debe abrirse en una pestaña del explorador y mostrar Hello World!.

Solución de problemas de implementación

Es posible que se produzcan los siguientes errores comunes al usar Git local 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, quite la dirección URL incorrecta mediante git remote remove y vuelva a crear el remoto con la dirección URL correcta.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. No especificaste una rama cuando ejecutaste git push o no estableciste el valor de push.default en .gitconfig. Vuelva a ejecutar git push y especifique la rama correcta con git push azure <branch>.
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 es mastero cambie la rama de implementación siguiendo las instrucciones de Inserción en la rama correcta.
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 main rama con git push azure main.
RPC failed; result=22, HTTP code = 5xx. Intentó empujar un repositorio Git grande 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. Ha implementado una aplicación de Node.js con un archivo package.json que especifica los módulos necesarios agregados. Revise los mensajes de error npm ERR! que aparecen antes de este error para obtener más contexto. Las siguientes causas conocidas de este error producen los mensajes correspondientes npm ERR! :
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 bien npm ERR! [modulename@version] preinstall: \make \|\| gmake\