Lokale Git-implementatie naar Azure App ServiceLocal Git deployment to Azure App Service

In deze hand leiding wordt uitgelegd hoe u uw app kunt implementeren in Azure app service vanuit een Git-opslag plaats op uw lokale computer.This how-to guide shows you how to deploy your app to Azure App Service from a Git repository on your local computer.

VereistenPrerequisites

Volg de stappen in deze hand leiding:To follow the steps in this how-to guide:

  • Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.If you don't have an Azure subscription, create a free account before you begin.

  • Installeer Git.Install Git.

  • Een lokale Git-opslag plaats hebben met code die u wilt implementeren.Have a local Git repository with code you want to deploy. Als u een voor beeld van een opslag plaats wilt downloaden, voert u de volgende opdracht uit in het lokale terminal venster:To download a sample repository, run the following command in your local terminal window:

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

Uw opslag plaats voorbereidenPrepare your repository

Zorg ervoor dat de hoofdmap van uw opslag plaats de juiste bestanden bevat in het project om automatische builds op te halen van Azure App Service kudu-buildserver.To get automatic builds from Azure App Service Kudu build server, make sure that your repository root has the correct files in your project.

RuntimeRuntime Hoofdmap bestandenRoot directory files
ASP.NET (alleen Windows)ASP.NET (Windows only) *. SLN, *. csproj_of default. aspx*.sln_, *.csproj, or default.aspx
ASP.NET CoreASP.NET Core *. SLN of *. csproj*.sln or *.csproj
PHPPHP index. phpindex.php
Ruby (alleen Linux)Ruby (Linux only) GemfileGemfile
Node.jsNode.js server.js, _app.js_of package.js met een begin scriptserver.js, app.js, or package.json with a start script
PythonPython _ * . py_, requirements.txt_of runtime.txt*.py_, requirements.txt, or runtime.txt
HTMLHTML default.htm, default.html, default. asp, index.htm, _index.html_of iisstart.htmdefault.htm, default.html, default.asp, index.htm, index.html, or iisstart.htm
WebtakenWebJobs <job_name>/run.<extension><job_name>/run.<extension> onder app _ -gegevens/-taken/doorlopend voor doorlopend webjobs, of app- _ gegevens/-taken/geactiveerd voor getriggerde webjobs.under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. Zie kuduvoor meer informatie.For more information, see Kudu WebJobs documentation.
FunctionsFunctions Zie continue implementatie voor Azure functions.See Continuous deployment for Azure Functions.

Als u uw implementatie wilt aanpassen, neemt u een . Deployment -bestand op in de hoofdmap van de opslag plaats.To customize your deployment, include a .deployment file in the repository root. Zie implementaties en aangepast implementatie scriptaanpassen voor meer informatie.For more information, see Customize deployments and Custom deployment script.

Notitie

Als u in Visual Studio ontwikkelt, kunt u Visual Studio een opslag plaats laten maken.If you develop in Visual Studio, let Visual Studio create a repository for you. Het project kan direct worden geïmplementeerd met behulp van Git.The project is immediately ready to be deployed by using Git.

Azure Cloud Shell gebruikenUse Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. U kunt de vooraf geïnstalleerde opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Om Azure Cloud Shell op te starten:To start Azure Cloud Shell:

OptieOption Voorbeeld/koppelingExample/Link
Selecteer Nu proberen in de rechterbovenhoek van een codeblok.Select Try It in the upper-right corner of a code block. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Voorbeeld van Uitproberen voor Azure Cloud Shell
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Cloud Shell starten in een nieuw vensterLaunch Cloud Shell in a new window
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Knop Cloud Shell in de Azure Portal

Om de code in dit artikel in Azure Cloud Shell uit te voeren:To run the code in this article in Azure Cloud Shell:

  1. Start Cloud Shell.Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.Select the Copy button on a code block to copy the code.

  3. Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Selecteer Invoeren om de code uit te voeren.Select Enter to run the code.

Implementeren met kudu build serverDeploy with Kudu build server

De eenvoudigste manier om lokale Git-implementatie voor uw app in te scha kelen met de kudu-server App Service build, is door gebruik te maken van Azure Cloud Shell.The easiest way to enable local Git deployment for your app with the Kudu App Service build server is to use Azure Cloud Shell.

Een implementatiegebruiker configurerenConfigure a deployment user

FTP en lokale Git kunnen worden geïmplementeerd in een Azure-web-app met behulp van een implementatiegebruikers.FTP and local Git can deploy to an Azure web app by using a deployment user. Zodra u deze implementatiegebruiker hebt gemaakt, kunt u deze voor al uw Azure-implementaties gebruiken.Once you configure your deployment user, you can use it for all your Azure deployments. Uw gebruikersnaam en wachtwoord voor implementatie op accountniveau verschillen van de referenties voor uw Azure-abonnement.Your account-level deployment username and password are different from your Azure subscription credentials.

Als u de implementatie gebruiker wilt configureren, voert u de opdracht AZ webapp Deployment User set uit in azure Cloud shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Vervang <username> en <password> door een gebruikers naam en wacht woord voor de implementatie gebruiker.Replace <username> and <password> with a deployment user username and password.

  • De gebruikersnaam moet uniek zijn binnen Azure en voor lokale Git-pushes en mag het symbool @ niet bevatten.The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Het wachtwoord moet ten minste acht tekens lang zijn en minimaal twee van de volgende drie typen elementen bevatten: letters, cijfers en symbolen.The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
az webapp deployment user set --user-name <username> --password <password>

De JSON-uitvoer toont het wachtwoord als null.The JSON output shows the password as null. Als er een 'Conflict'. Details: 409-fout optreedt, wijzigt u de gebruikersnaam.If you get a 'Conflict'. Details: 409 error, change the username. Als er een 'Bad Request'. Details: 400-fout optreedt, kiest u een sterker wachtwoord.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Noteer uw gebruikersnaam en wachtwoord om te gebruiken bij het implementeren van uw web-apps.Record your username and password to use to deploy your web apps.

De implementatie-URL ophalenGet the deployment URL

Als u de URL wilt ophalen voor het inschakelen van lokale Git-implementatie voor een bestaande app, voert u az webapp deployment source config-local-git uit in de Cloud shell.To get the URL to enable local Git deployment for an existing app, run az webapp deployment source config-local-git in the Cloud Shell. Vervang <app-name> en <group-name> door de namen van uw app en de bijbehorende Azure-resource groep.Replace <app-name> and <group-name> with the names of your app and its Azure resource group.

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

Notitie

Als u een Linux-app-service-abonnement gebruikt, moet u deze para meter toevoegen:--runtime python | 3.7If you are using a linux app-service-plan, you need to add this parameter: --runtime python|3.7

Als u een nieuwe app met Git wilt maken, voert u az webapp create in het Cloud shell uit met de --deployment-local-git para meter.Or, to create a new Git-enabled app, run az webapp create in the Cloud Shell with the --deployment-local-git parameter. Vervang <app-name> , <group-name> , en <plan-name> door de namen van uw nieuwe Git-app, de Azure-resource groep en het Azure app service plan.Replace <app-name>, <group-name>, and <plan-name> with the names for your new Git app, its Azure resource group, and its Azure App Service plan.

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

Een van de opdrachten retourneert een URL zoals: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git .Either command returns a URL like: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Gebruik deze URL om uw app te implementeren in de volgende stap.Use this URL to deploy your app in the next step.

In plaats van deze URL op account niveau te gebruiken, kunt u ook lokale Git inschakelen met behulp van referenties op app-niveau.Instead of using this account-level URL, you can also enable local Git by using app-level credentials. Azure App Service worden deze referenties automatisch gegenereerd voor elke app.Azure App Service automatically generates these credentials for every app.

Haal de app-referenties op door de volgende opdracht uit te voeren in de Cloud Shell.Get the app credentials by running the following command in the Cloud Shell. Vervang <app-name> en <group-name> door de naam van de app en de naam van de Azure-resource groep.Replace <app-name> and <group-name> with your app's name and Azure resource group name.

az webapp deployment list-publishing-credentials --name <app-name> --resource-group <group-name> --query scmUri --output tsv

Gebruik de URL die in de volgende stap wordt gebruikt om uw app te implementeren.Use the URL that returns to deploy your app in the next step.

De web-app implementerenDeploy the web app

  1. Open een lokaal Terminal venster voor uw lokale Git-opslag plaats en voeg een Azure Remote toe.Open a local terminal window to your local Git repository, and add an Azure remote. Vervang in de volgende opdracht door <url> de gebruikersspecifieke implementatie-URL of app-specifieke URL die u uit de vorige stap hebt gekregen.In the following command, replace <url> with the deployment user-specific URL or app-specific URL you got from the previous step.

    git remote add azure <url>
    
  2. Pushen naar de externe Azure met git push azure master .Push to the Azure remote with git push azure master.

  3. Voer in het venster Git-referentie beheer uw wacht woord voor de implementatie gebruikerin, niet uw aanmeldings wachtwoord voor Azure.In the Git Credential Manager window, enter your deployment user password, not your Azure sign-in password.

  4. Controleer de uitvoer.Review the output. U kunt runtime-specifieke automatisering zien, zoals MSBuild voor ASP.NET, npm install voor Node.js en pip install voor python.You may see runtime-specific automation, such as MSBuild for ASP.NET, npm install for Node.js, and pip install for Python.

  5. Blader naar uw app in de Azure Portal om te controleren of de inhoud is geïmplementeerd.Browse to your app in the Azure portal to verify that the content is deployed.

Implementeren met Azure pipelines-buildsDeploy with Azure Pipelines builds

Als uw account over de benodigde machtigingen beschikt, kunt u Azure-pijp lijnen (preview) instellen om lokale Git-implementatie in te scha kelen voor uw app.If your account has the necessary permissions, you can set up Azure Pipelines (Preview) to enable local Git deployment for your app.

  • Uw Azure-account moet machtigingen hebben om naar Azure Active Directory te schrijven en een service te maken.Your Azure account must have permissions to write to Azure Active Directory and create a service.

  • Uw Azure-account moet de rol eigenaar hebben in uw Azure-abonnement.Your Azure account must have the Owner role in your Azure subscription.

  • U moet een beheerder zijn in het Azure DevOps-project dat u wilt gebruiken.You must be an administrator in the Azure DevOps project you want to use.

Lokale Git-implementatie voor uw app inschakelen met Azure-pijp lijnen (preview):To enable local Git deployment for your app with Azure Pipelines (Preview):

  1. Zoek in het Azure Portalnaar en selecteer app Services.In the Azure portal, search for and select App Services.

  2. Selecteer uw Azure App Service-app en selecteer implementatie centrum in het menu links.Select your Azure App Service app and select Deployment Center in the left menu.

  3. Selecteer lokale Gitop de pagina implementatie centrum en selecteer door gaan.On the Deployment Center page, select Local Git, and then select Continue.

    Selecteer lokale Git en selecteer door gaan

  4. Selecteer op de pagina Build -provider Azure-pijp lijnen (preview) en selecteer vervolgens door gaan.On the Build provider page, select Azure Pipelines (Preview), and then select Continue.

    Selecteer Azure-pijp lijnen (preview) en selecteer vervolgens door gaan.

  5. Configureer op de pagina configureren een nieuwe Azure DevOps-organisatie of geef een bestaande organisatie op en selecteer door gaan.On the Configure page, configure a new Azure DevOps organization, or specify an existing organization, and then select Continue.

    Notitie

    Als uw bestaande Azure DevOps-organisatie niet wordt weer gegeven, moet u deze mogelijk koppelen aan uw Azure-abonnement.If your existing Azure DevOps organization isn't listed, you may need to link it to your Azure subscription. Zie uw CD release-pijp lijn definiërenvoor meer informatie.For more information, see Define your CD release pipeline.

  6. Afhankelijk van de prijs categorievan uw app service-abonnement, ziet u mogelijk de pagina implementeren naar staging .Depending on your App Service plan pricing tier, you may see a Deploy to staging page. Kies of u implementatie sleuven wilt inschakelenen selecteer door gaan.Choose whether to enable deployment slots, and then select Continue.

  7. Controleer de instellingen op de pagina samen vatting en selecteer vervolgens volt ooien.On the Summary page, review the settings, and then select Finish.

  8. Wanneer de Azure-pijp lijn gereed is, kopieert u de URL van de Git-opslag plaats vanaf de pagina Deployment Center , zodat u deze kunt gebruiken in de volgende stap.When the Azure Pipeline is ready, copy the Git repository URL from the Deployment Center page to use in the next step.

    De URL van de Git-opslag plaats kopiëren

  9. Voeg in het lokale terminal venster een externe Azure-Data Bank toe aan uw lokale Git-opslag plaats.In your local terminal window, add an Azure remote to your local Git repository. Vervang in de opdracht door <url> de URL van de Git-opslag plaats die u hebt ontvangen van de vorige stap.In the command, replace <url> with the URL of the Git repository that you got from the previous step.

    git remote add azure <url>
    
  10. Pushen naar de externe Azure met git push azure master .Push to the Azure remote with git push azure master.

  11. Meld u op de pagina Git-referentie beheer aan met uw VisualStudio.com-gebruikers naam.On the Git Credential Manager page, sign in with your visualstudio.com username. Zie overzicht van Azure DevOps Services-verificatievoor andere verificatie methoden.For other authentication methods, see Azure DevOps Services authentication overview.

  12. Nadat de implementatie is voltooid, bekijkt u de voortgang van de build op https://<azure_devops_account>.visualstudio.com/<project_name>/_build en de voortgang van de implementatie op https://<azure_devops_account>.visualstudio.com/<project_name>/_release .Once deployment is finished, view the build progress at https://<azure_devops_account>.visualstudio.com/<project_name>/_build, and the deployment progress at https://<azure_devops_account>.visualstudio.com/<project_name>/_release.

  13. Blader naar uw app in de Azure Portal om te controleren of de inhoud is geïmplementeerd.Browse to your app in the Azure portal to verify that the content is deployed.

Wat gebeurt er met mijn app tijdens de implementatie?What happens to my app during deployment?

Met alle officieel ondersteunde implementatie methoden worden wijzigingen aangebracht in de bestanden in de /home/site/wwwroot map van uw app.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Deze bestanden worden gebruikt om uw app uit te voeren.These files are used to run your app. Daarom kan de implementatie mislukken vanwege vergrendelde bestanden.Therefore, the deployment can fail because of locked files. De app kan ook onvoorspelbaar werken tijdens de implementatie, omdat niet alle bestanden tegelijk worden bijgewerkt.The app may also behave unpredictably during deployment, because not all the files updated at the same time. Dit is niet wenselijk voor een klant gerichte app.This is undesirable for a customer-facing app. Er zijn een aantal verschillende manieren om deze problemen te voor komen:There are a few different ways to avoid these issues:

Problemen met implementatie oplossenTroubleshoot deployment

Mogelijk worden de volgende veelvoorkomende fout berichten weer geven wanneer u Git gebruikt om te publiceren naar een App Service-app in Azure:You may see the following common error messages when you use Git to publish to an App Service app in Azure:

BerichtMessage OorzaakCause OplossingResolution
Unable to access '[siteURL]': Failed to connect to [scmAddress] De app is niet actief.The app isn't up and running. Start de app in het Azure Portal.Start the app in the Azure portal. Git-implementatie is niet beschikbaar wanneer de web-app is gestopt.Git deployment isn't available when the web app is stopped.
Couldn't resolve host 'hostname' De adres gegevens voor de externe Azure-computer zijn onjuist.The address information for the 'azure' remote is incorrect. Gebruik de git remote -v opdracht om alle externe-en de bijbehorende URL weer te geven.Use the git remote -v command to list all remotes, along with the associated URL. Controleer of de URL voor de externe Azure juist is.Verify that the URL for the 'azure' remote is correct. Als dat nodig is, kunt u deze extern verwijderen en opnieuw maken met de juiste URL.If needed, remove and recreate this remote using the correct URL.
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. U hebt geen vertakking opgegeven tijdens git push of u hebt geen waarde ingesteld push.default in .gitconfig .You didn't specify a branch during git push, or you haven't set the push.default value in .gitconfig. Voer git push opnieuw uit en geef de hoofd vertakking op: git push azure master .Run git push again, specifying the master branch: git push azure master.
src refspec [branchname] does not match any. U hebt geprobeerd naar een andere vertakking dan Master te pushen op de externe Azure-server.You tried to push to a branch other than master on the 'azure' remote. Voer git push opnieuw uit en geef de hoofd vertakking op: git push azure master .Run git push again, specifying the master branch: git push azure master.
RPC failed; result=22, HTTP code = 5xx. Deze fout kan optreden als u probeert een grote Git-opslag plaats via HTTPS te pushen.This error can happen if you try to push a large git repository over HTTPS. Wijzig de Git-configuratie op de lokale computer zodat deze postBuffer groter wordt.Change the git configuration on the local machine to make the postBuffer bigger. Bijvoorbeeld: git config --global http.postBuffer 524288000.For example: git config --global http.postBuffer 524288000.
Error - Changes committed to remote repository but your web app not updated. U hebt een Node.js-app geïmplementeerd met een package.jsin een bestand dat aanvullende vereiste modules bevat.You deployed a Node.js app with a package.json file that specifies additional required modules. Bekijk de npm ERR! fout berichten vóór deze fout voor meer context over de fout.Review the npm ERR! error messages before this error for more context on the failure. Hieronder vindt u de bekende oorzaken van deze fout en de bijbehorende npm ERR! berichten:The following are the known causes of this error, and the corresponding npm ERR! messages:

Onjuist gevormd package.jsbestand:npm ERR! Couldn't read dependencies.Malformed package.json file: npm ERR! Couldn't read dependencies.

Systeem eigen module heeft geen binaire distributie voor Windows:Native module doesn't have a binary distribution for Windows:
npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1
ofor
npm ERR! [modulename@version] preinstall: \make || gmake\

Aanvullende bronnenAdditional resources