Använda azure-webbappens distributionsåtgärd med Azure Stack Hub
Du kan konfigurera GitHub Actions för att distribuera en webbapp till din Azure Stack Hub-instans. På så sätt kan du konfigurera kontinuerlig integrering och distribution för din app. Den här artikeln hjälper dig att komma igång med automatiserad distribution med hjälp av GitHub Actions och Azure Stack Hub. Du skapar en webbapp och använder publiceringsprofilen för att skapa webbappen som värd för din app.
GitHub Actions är arbetsflöden som består av åtgärder som möjliggör automatisering direkt i din kodlagringsplats. Du kan utlösa arbetsflöden med händelser i GitHub-utvecklingsprocessen. Du kan ange vanliga DevOps-automatiseringsuppgifter som testning, distribution och kontinuerlig integrering.
Det här exempelarbetsflödet innehåller instruktioner för:
- Skapa och verifiera tjänstens huvudnamn
- Skapa din webbapps publiceringsprofil
- Lägga till ett körningsspecifikt arbetsflöde
- Lägga till ett matchande arbetsflöde med distribution av webbappar
Skapa ett huvudnamn för tjänsten
Ett huvudnamn för tjänsten kan använda rollbaserad åtkomstkontroll för att ansluta till och interagera med resurser. Du behöver ett huvudnamn för tjänsten med deltagaråtkomst och de attribut som anges i de här anvisningarna för användning med din GitHub Actions.
Viktigt
Om du är utvecklare eller användare av Azure Stack Hub har du inte behörighet att skapa ett huvudnamn för tjänsten. Du måste antingen ha behörighet som molnoperatör eller begära den här principen från molnoperatören med hjälp av anvisningarna i det här avsnittet.
Följande kodfragment skrivs för en Windows-dator med PowerShell-kommandotolken med Azure CLI. Om du använder CLI på en Linux-dator och bash tar du antingen bort linjetillägget eller ersätter dem med en \
.
Förbered värdena för följande parametrar som används för att skapa tjänstens huvudnamn:
Parameter Exempel Description endpoint-resource-manager "https://management.orlando.azurestack.corp.microsoft.com" Slutpunkten för resurshantering. suffix-storage-endpoint "orlando.azurestack.corp.microsoft.com" Slutpunktssuffixet för lagringskonton. suffix-keyvault-dns ".vault.orlando.azurestack.corp.microsoft.com" Dns-suffixet för Key Vault-tjänsten. endpoint-active-directory-graph-resource-id "https://graph.windows.net/" Resurs-ID:t för Azure Active Directory. endpoint-sql-management https://notsupported Sql Server-hanteringsslutpunkten. Ange detta till https://notsupported
profil 2020-09-01-hybrid Profil som ska användas för det här molnet. Öppna kommandoradsverktyget, till exempel Windows PowerShell eller Bash. Logga in på Azure CLI med följande kommando:
az login
register
Använd kommandot för en ny miljö ellerupdate
kommandot om du använder en befintlig miljö. Använd följande kommando.az cloud register ` -n "AzureStackUser" ` --endpoint-resource-manager "https://management.<local>.<FQDN>" ` --suffix-storage-endpoint ".<local>.<FQDN>" ` --suffix-keyvault-dns ".vault.<local>.<FQDN>" ` --endpoint-active-directory-graph-resource-id "https://graph.windows.net/" ` --endpoint-sql-management https://notsupported ` --profile 2020-09-01-hybrid
Hämta det prenumerations-ID och den resursgrupp som du vill använda för tjänstens huvudnamn.
Skapa tjänstens huvudnamn med följande kommando med prenumerations-ID och resursgrupp:
az ad sp create-for-rbac --name "myApp" --role contributor ` --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} ` --sdk-auth
Kopiera det resulterande JSON-objektet. Du använder JSON-objektet för att skapa din hemlighet på din GitHub-lagringsplats som innehåller åtgärden. JSON-objektet ska ha följande attribut:
{ "clientId": <Application ID for the service principal>, "clientSecret": <Client secret for the service principal>, "subscriptionId": <Subscription ID for the service principal>, "tenantId": <Tenant ID for the service principal>, "activeDirectoryEndpointUrl": "https://login.microsoftonline.com/", "resourceManagerEndpointUrl": "https://management.<FQDN>", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "sqlManagementEndpointUrl": "https://notsupported", "galleryEndpointUrl": "https://providers.<FQDN>:30016/", "managementEndpointUrl": "https://management.<FQDN>" }
Skapa webbappens publiceringsprofil
Öppna bladet Skapa webbapp
- Logga in på Azure Stack Hub-portalen.
- Välj Skapa en resurs>Webb + Mobilapp>.
Så här skapar du din webbapp
- Välj din prenumeration.
- Skapa eller välj en resursgrupp.
- Skriv namnet på din app. Namnet på appen visas i URL:en för din app, till exempel
yourappname.appservice.<region>.<FQDN>
- Välj körningsstacken för din app. Körningen måste matcha arbetsflödet som du använder för att rikta publiceringsprofilen.
- Välj det operativsystem (OS) som ska vara värd för din körning och app.
- Välj eller skriv Region för din Azure Stack Hub-instans.
- Välj planen baserat på din Azure Stack Hub-instans, region och appoperativsystem.
- Välj Granska + skapa.
- Granska din webbapp. Välj Skapa.
- Välj Gå till resurs.
- Välj Hämta publiceringsprofil. Publiceringsprofilen laddas ned och heter
<yourappname>.PublishSettings
. Filen innehåller en XML med målvärdena för din webbapp. - Lagra publiceringsprofilen så att du kan komma åt den när du skapar hemligheterna för lagringsplatsen.
Lägga till dina hemligheter på lagringsplatsen
Du kan använda GitHub-hemligheter för att kryptera känslig information som ska användas i dina åtgärder. Du skapar en hemlighet som ska innehålla tjänstens huvudnamn och en annan hemlighet som ska innehålla din webbapps publiceringsprofil. Åtgärden använder dessa för att logga in på din Azure Stack Hub-instans och skapa din app till webbappens mål.
- Öppna eller skapa en GitHub-lagringsplats. Om du behöver hjälp med att skapa en lagringsplats i GitHub kan du hitta instruktioner i GitHub-dokumenten.
- Välj inställningar.
- Välj Hemligheter.
- Välj Ny lagringsplatshemlighet.
- Ge din hemlighet
AZURE_CREDENTIALS
namnet . - Klistra in JSON-objektet som representerar tjänstens huvudnamn.
- Välj Add secret (Lägg till hemlighet).
- Välj Ny lagringsplatshemlighet.
- Ge din hemlighet
AZURE_WEBAPP_PUBLISH_PROFILE
namnet . - Öppna i
<yourappname>.PublishSettings
en textredigerare och kopiera och klistra sedan in XML i lagringsplatsens hemlighet. - Välj Add secret (Lägg till hemlighet).
Lägga till ett körningsarbetsflöde
Välj en mall i tabellen för din webbappskörning.
Körning Mall DotNet dotnet.yml NodeJS node.yml Java java_jar.yml Java java_war.yml Python python.yml PHP php.yml Docker docker.yml Placera mallen GitHub Actions arbetsflödeskatalog i projektlagringsplatsen:
.github/workflows/<runtime.yml>
Arbetsflödeskatalogen innehåller två arbetsflöden.
Lägg till distributionsåtgärden för webbappen
Skapa ett andra arbetsflöde med yaml i det här avsnittet. I det här exemplet distribuerar du en Python-webbapp. Du skulle behöva välja en konfigurationsåtgärd baserat på ditt arbetsflöde. Du hittar referenser för att konfigurera åtgärder för olika körningsmiljöer i tabellen, installationsåtgärder för olika körningsmiljöer efter de steg som används för att skapa åtgärden.
Exempel på GitHub Actions arbetsflöde
Öppna din GitHub-lagringsplats. Om du inte redan har lagt till webbappens programresurser lägger du till dem nu. I det här exemplet använder jag Python Flask-Hello World exempel och jag har lagt till filerna Python
.gitignore
,app.py
ochrequirements.txt
.Välj Åtgärder.
Välj Nytt arbetsflöde.
- Om det här är ditt första arbetsflöde väljer du konfigurera ett arbetsflöde själv under Välj en arbetsflödesmall.
- Om du har befintliga arbetsflöden väljer du Nytt arbetsflöde>Konfigurera ett arbetsflöde själv.
I sökvägen namnger du filen
workflow.yml
.Kopiera och klistra in arbetsflödets yml.
# .github/workflows/worfklow.yml on: push jobs: build-and-deploy: runs-on: ubuntu-latest steps: # checkout the repo - name: 'Checkout Github Action' uses: actions/checkout@main - name: Setup Python 3.6 uses: actions/setup-node@v1 with: python-version: '3.6' - name: 'create a virtual environment and install dependencies' run: | python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt - name: 'Run Azure webapp deploy action using publish profile credentials' uses: azure/webapps-deploy@v2 with: app-name: <YOURAPPNAME> publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
I workflow.yaml-uppdateringen
<YOURAPPNAME>
med ditt appnamn.Välj Start commit (Starta incheckning).
Lägg till incheckningsrubriken och valfri information och välj sedan Checka in ny fil.
Konfigurera åtgärder för olika körningsmiljöer
Om du vill skapa appkod i en specifik språkbaserad miljö använder du konfigurationsåtgärder:
Körning | Konfigurera åtgärder |
---|---|
DotNet | Konfigurera DotNet |
NodeJS | Konfigurera nod |
Java | Konfigurera Java |
Python | Konfigurera Python |
Docker | docker-login |
När inloggningsåtgärden är klar kan nästa uppsättning åtgärder i arbetsflödet utföra uppgifter som att skapa, tagga och push-överföra containrar. Mer information finns i dokumentationen för azure-webbappsåtgärden.
Utlös distributionen
När åtgärden körs kontrollerar du att den har körts korrekt.
- Öppna din GitHub-lagringsplats. Du kan utlösa arbetsflödet genom att push-överföra till lagringsplatsen.
- Välj Åtgärder.
- Välj namnet på incheckningen under Alla arbetsflöden. Båda arbetsflödena har loggat sin status.
- Välj namnet på jobbet för distributionen,
.github/workflows/workflow.yml
. - Expandera avsnitten för att granska returvärdena för dina arbetsflödesåtgärder. Hitta URL:en för din distribuerade webbapp.
- Öppna en webbläsare och läs in URL:en.
Nästa steg
- Hitta fler åtgärder på GitHub Marketplace.
- Läs mer om vanliga distributioner för Azure Stack Hub
- Läs mer om att använda Azure Resource Manager-mallar i Azure Stack Hub
- Granska DevOps-hybridmolnmönstret, DevOps-mönstret
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för