Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
GitHub Actions ger dig flexibiliteten att skapa ett automatiserat arbetsflöde för programvaruutveckling. Med åtgärden Azure Web Deploy kan du automatisera arbetsflödet för att distribuera anpassade containrar till App Service med GitHub Actions.
Ett arbetsflöde definieras av en YAML-fil (.yml) i /.github/workflows/
sökvägen på lagringsplatsen. Den här definitionen innehåller de olika steg och parametrar som finns i arbetsflödet.
För ett Azure App Service-containerarbetsflöde har filen tre avsnitt:
Avsnitt | Uppgifter |
---|---|
Autentisering | 1. Hämta tjänstens huvudnamn eller publicera profil. 2. Skapa en GitHub-hemlighet. |
Bygge | 1. Skapa miljön. 2. Skapa containeravbildningen. |
Distribuera | 1. Distribuera containeravbildningen. |
Det rekommenderade sättet att autentisera med Azure App Services för GitHub Actions är med OpenID Connect. Du kan också autentisera med tjänstens huvudnamn eller en publiceringsprofil.
Spara publiceringsprofilens autentiseringsuppgifter eller tjänstens huvudnamn som en GitHub-hemlighet för att autentisera med Azure. Du kommer åt hemligheten i arbetsflödet.
En publiceringsprofil är en autentiseringsuppgift på appnivå. Konfigurera din publiceringsprofil som en GitHub-hemlighet.
Gå till apptjänsten i Azure Portal.
På sidan Översikt väljer du Hämta publiceringsprofil.
Anteckning
Från och med oktober 2020 behöver Linux-webbappar appinställningen WEBSITE_WEBDEPLOY_USE_SCM
inställd true
på innan filen laddas ned. Det här kravet tas bort i framtiden. Se Konfigurera en App Service-app i Azure Portal för att lära dig hur du konfigurerar vanliga inställningar för webbappar.
Spara den nedladdade filen. Du använder innehållet i filen för att skapa en GitHub-hemlighet.
I GitHub bläddrar du till lagringsplatsen. Välj Inställningar Säkerhetshemligheter >> och variabler > Åtgärder > Ny lagringsplatshemlighet.
Om du vill använda autentiseringsuppgifter på appnivå klistrar du in innehållet i den nedladdade publiceringsprofilfilen i hemlighetens värdefält. Ge hemligheten AZURE_WEBAPP_PUBLISH_PROFILE
namnet .
När du konfigurerar ditt GitHub-arbetsflöde använder AZURE_WEBAPP_PUBLISH_PROFILE
du i åtgärden distribuera Azure Web App. Till exempel:
- uses: azure/webapps-deploy@v2
with:
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
Definiera hemligheter som ska användas med åtgärden Docker-inloggning. Exemplet i det här dokumentet använder Azure Container Registry för containerregistret.
Gå till containern i Azure Portal eller Docker och kopiera användarnamnet och lösenordet. Du hittar användarnamnet och lösenordet för Azure Container Registry i Azure Portal under Inställningar>Åtkomstnycklar för registret.
Definiera en ny hemlighet för registrets användarnamn med namnet REGISTRY_USERNAME
.
Definiera en ny hemlighet för registerlösenordet med namnet REGISTRY_PASSWORD
.
I följande exempel visas en del av arbetsflödet som skapar en Node.js Docker-avbildning. Använd Docker-inloggning för att logga in på ett privat containerregister. I det här exemplet används Azure Container Registry, men samma åtgärd fungerar för andra register.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
Du kan också använda Docker-inloggning för att logga in på flera containerregister samtidigt. Det här exemplet innehåller två nya GitHub-hemligheter för autentisering med docker.io. Exemplet förutsätter att det finns en Dockerfile på rotnivån i registret.
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: azure/docker-login@v1
with:
login-server: index.docker.io
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
I följande exempel visas en del av arbetsflödet som skapar en Windows Docker-avbildning. Använd Docker-inloggning för att logga in på ett privat containerregister. I det här exemplet används Azure Container Registry, men samma åtgärd fungerar för andra register.
name: Windows Container Workflow
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
Du kan också använda Docker-inloggning för att logga in på flera containerregister samtidigt. Det här exemplet innehåller två nya GitHub-hemligheter för autentisering med docker.io. Exemplet förutsätter att det finns en Dockerfile på rotnivån i registret.
name: Windows Container Workflow
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: azure/docker-login@v1
with:
login-server: index.docker.io
username: ${{ secrets.DOCKERIO_USERNAME }}
password: ${{ secrets.DOCKERIO_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
Om du vill distribuera avbildningen till en anpassad container i App Service använder du åtgärden azure/webapps-deploy@v2
. Den här åtgärden har sju parametrar:
Parameter | Förklaring |
---|---|
appnamn | (Krävs) Namnet på App Service-appen |
publicera profil | (Valfritt) Gäller för Web Apps (Windows och Linux) och Web App Containers(linux). Scenario med flera containrar stöds inte. Publicera profilfilinnehåll (*.publishsettings) med webbdistributionshemligheter |
slot-name | (Valfritt) Ange ett befintligt fack som inte är produktionsplatsen |
paket | (Valfritt) Gäller endast för webbapp: Sökväg till paket eller mapp. *.zip, *.war, *.jar eller en mapp att distribuera |
Bilder | (Krävs) Gäller endast för webappcontainrar: Ange det fullständigt kvalificerade containeravbildningsnamnet. Till exempel "myregistry.azurecr.io/nginx:latest" eller "python:3.7.2-alpine/". För en app med flera containrar kan flera containeravbildningsnamn anges (avgränsade med flera rader) |
configuration-file | (Valfritt) Gäller endast för webappcontainrar: Sökvägen till Docker-Compose-filen. Bör vara en fullständigt kvalificerad sökväg eller i förhållande till standardarbetskatalogen. Krävs för appar med flera containrar. |
startup-command | (Valfritt) Ange startkommandot. För ex. dotnet run eller dotnet filename.dll |
name: Linux Container Node Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'myapp'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'
name: Windows_Container_Workflow
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: mycontainer.azurecr.io
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker build . -t mycontainer.azurecr.io/myapp:${{ github.sha }}
docker push mycontainer.azurecr.io/myapp:${{ github.sha }}
- uses: azure/webapps-deploy@v2
with:
app-name: 'myapp'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: 'mycontainer.azurecr.io/myapp:${{ github.sha }}'
Du hittar vår uppsättning åtgärder grupperade i olika lagringsplatser på GitHub, där var och en innehåller dokumentation och exempel som hjälper dig att använda GitHub för CI/CD och distribuera dina appar till Azure.
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Skapa och distribuera program till Azure med hjälp av GitHub Actions - Training
Skapa två arbetsflöden för distribution med GitHub Actions och Microsoft Azure. Lär dig mer om att utlösa ett CD-arbetsflöde och lagra autentiseringsuppgifter.
Certifiering
Microsoft Certified: Azure Developer Associate - Certifications
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.