Oktatóanyag: A GitHub Actions használata az App Service-ben való üzembe helyezéshez és egy adatbázishoz való csatlakozáshoz
Megtudhatja, hogyan állíthat be GitHub Actions-munkafolyamatot egy ASP.NET Core-alkalmazás üzembe helyezéséhez egy Azure SQL Database-háttérrendszerrel . Ha végzett, egy ASP.NET alkalmazás fut az Azure-ban, és csatlakozik az SQL Database-hez. Először arm-sablont fog használni az erőforrások létrehozásához.
Ez az oktatóanyag nem használ tárolókat. Ha egy tárolóalapú ASP.NET Core-alkalmazásban szeretne üzembe helyezni, olvassa el a GitHub Actions használata az App Service for Containersben való üzembe helyezésről és az adatbázishoz való csatlakozásról szóló témakört.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- GitHub Actions-munkafolyamat használata erőforrások Azure Resource Manager-sablonnal (ARM-sablonnal) való hozzáadásához az Azure-hoz
- GitHub Actions-munkafolyamat használata ASP.NET Core-alkalmazás létrehozásához
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Előfeltételek
Az oktatóanyag elvégzéséhez a következőkre lesz szüksége:
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Egy GitHub-fiók. Ha nincs fiókja, ingyenesen regisztrálhat egyet.
- Egy GitHub-adattár a Resource Manager-sablonok és a munkafolyamat-fájlok tárolására. A létrehozásról az Új adattár létrehozása című témakörben olvashat.
A minta letöltése
A mintaprojekt elágazása az Azure-minták adattárában.
https://github.com/Azure-Samples/dotnetcore-sqldb-ghactions
Az erőforráscsoport létrehozása
Nyissa meg az Azure Cloud Shellt a következő helyen https://shell.azure.com: . Alternatív megoldásként használhatja az Azure CLI-t, ha helyileg telepítette. (A Cloud Shellről további információt a A Cloud Shell áttekintése.)
az group create --name {resource-group-name} --location {resource-group-location}
Üzembehelyezési hitelesítő adatok létrehozása
Az OpenID Csatlakozás egy olyan hitelesítési módszer, amely rövid élettartamú jogkivonatokat használ. Az OpenID Csatlakozás beállítása a GitHub Actions használatával összetettebb folyamat, amely fokozott biztonságot nyújt.
Ha nem rendelkezik meglévő alkalmazással, regisztráljon egy új Microsoft Entra-alkalmazást és szolgáltatásnevet, amely hozzáfér az erőforrásokhoz.
az ad app create --display-name myApp
Ez a parancs jSON-t
appId
ad ki az Ön által.client-id
EzobjectId
az,APPLICATION-OBJECT-ID
és az összevont hitelesítő adatok Graph API-hívásokhoz való létrehozásához lesz használva. Mentse később GitHub-titkos kódkéntAZURE_CLIENT_ID
használni kívánt értéket.Hozzon létre egy szolgáltatásnevet. Cserélje le az
$appID
appId-et a JSON-kimenetből. Ez a parancs egy másikobjectId
JSON-kimenetet hoz létre a következő lépésben. Az újobjectId
aassignee-object-id
.Ez a parancs egy másik
objectId
JSON-kimenetet hoz létre, és a következő lépésben fogja használni. Az újobjectId
aassignee-object-id
.Másolja ki a
appOwnerTenantId
gitHub-titkos kódként való használathoz későbbi használatraAZURE_TENANT_ID
.az ad sp create --id $appId
Hozzon létre egy új szerepkör-hozzárendelést előfizetés és objektum szerint. A szerepkör-hozzárendelés alapértelmezés szerint az alapértelmezett előfizetéshez lesz kötve. Cserélje le
$subscriptionId
az előfizetés azonosítóját az$resourceGroupName
erőforráscsoport nevére és$assigneeObjectId
a generáltraassignee-object-id
(az újonnan létrehozott szolgáltatásnév-objektumazonosítóra).az role assignment create --role contributor --subscription $subscriptionId --assignee-object-id $assigneeObjectId --assignee-principal-type ServicePrincipal --scope /subscriptions/$subscriptionId/resourceGroups/$resourceGroupName
Futtassa az alábbi parancsot egy új összevont identitás hitelesítő adatainak létrehozásához a Microsoft Entra-alkalmazáshoz.
- Cserélje le
APPLICATION-OBJECT-ID
a Microsoft Entra-alkalmazás objektumazonosítóját (amely az alkalmazás létrehozásakor jön létre). - Adjon meg egy értéket a
CREDENTIAL-NAME
későbbi hivatkozáshoz. - Állítsa be a
subject
. Ennek értékét a GitHub határozza meg a munkafolyamattól függően:- Feladatok a GitHub Actions-környezetben:
repo:< Organization/Repository >:environment:< Name >
- A környezethez nem kapcsolódó feladatok esetében adja meg az ág/címke hiv elérési útját a munkafolyamat aktiválásához használt hiv elérési út alapján:
repo:< Organization/Repository >:ref:< ref path>
. Például,repo:n-username/ node_express:ref:refs/heads/my-branch
vagyrepo:n-username/ node_express:ref:refs/tags/my-tag
. - Lekéréses kérelem esemény által aktivált munkafolyamatok esetén:
repo:< Organization/Repository >:pull_request
.
- Feladatok a GitHub Actions-környezetben:
az ad app federated-credential create --id <APPLICATION-OBJECT-ID> --parameters credential.json ("credential.json" contains the following content) { "name": "<CREDENTIAL-NAME>", "issuer": "https://token.actions.githubusercontent.com", "subject": "repo:octo-org/octo-repo:environment:Production", "description": "Testing", "audiences": [ "api://AzureADTokenExchange" ] }
- Cserélje le
Az Active Directory-alkalmazás, a szolgáltatásnév és az összevont hitelesítő adatok Azure Portalon való létrehozásáról a GitHub és az Azure Csatlakozás olvashat.
A GitHub-titkos kód konfigurálása hitelesítéshez
Meg kell adnia az alkalmazás ügyfél-azonosítóját, bérlőazonosítóját és előfizetés-azonosítóját a bejelentkezési művelethez. Ezek az értékek közvetlenül a munkafolyamatban is megadhatóak, vagy a GitHub titkos kulcsaiban tárolhatók, és a munkafolyamatban hivatkozhatnak gombra. Az értékek GitHub-titkos kulcsként való mentése a biztonságosabb megoldás.
A GitHubon nyissa meg az adattárat.
Nyissa meg a Gépház a navigációs menüben.
Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.
Válassza az Új tárház titkos kódját.
Titkos kulcsok létrehozása a következőhöz
AZURE_CLIENT_ID
: ,AZURE_TENANT_ID
ésAZURE_SUBSCRIPTION_ID
. Használja ezeket az értékeket a Microsoft Entra-alkalmazásból a GitHub-titkos kulcsokhoz:GitHub-titkos kód Microsoft Entra-alkalmazás AZURE_CLIENT_ID Alkalmazás (ügyfél) azonosítója AZURE_TENANT_ID Címtár (bérlő) azonosítója AZURE_SUBSCRIPTION_ID Előfizetés azonosítója Mentse az egyes titkos kulcsokat a Titkos kód hozzáadása gombra kattintva.
GitHub-titkos kódok hozzáadása a buildhez
Hozzon létre két új titkos kódot a GitHub-adattárban
SQLADMIN_PASS
ésSQLADMIN_LOGIN
a . Győződjön meg arról, hogy összetett jelszót választ, különben az SQL-adatbáziskiszolgáló létrehozási lépése sikertelen lesz. Nem fogja tudni újból elérni ezt a jelszót, ezért külön mentse.Hozzon létre egy
AZURE_SUBSCRIPTION_ID
titkos kulcsot az Azure-előfizetés azonosítójához. Ha nem ismeri az előfizetés azonosítóját, használja ezt a parancsot az Azure Shellben a megkereséséhez. Másolja ki az oszlop értékétSubscriptionId
.az account list -o table
Azure-erőforrások létrehozása
Az Azure-erőforrások létrehozása munkafolyamat egy ARM-sablont futtat az erőforrások Azure-ban való üzembe helyezéséhez. A munkafolyamat:
- A forráskód kivétele a Checkout művelettel.
- Az Azure Bejelentkezési művelettel bejelentkezik az Azure-ba, és összegyűjti a környezetet és az Azure-erőforrások adatait.
- Erőforrások üzembe helyezése az Azure Resource Manager üzembe helyezési műveletével.
Az Azure-erőforrások létrehozása munkafolyamat futtatása:
Nyissa meg a
infraworkflow.yml
fájlt az adattárban.github/workflows
.Frissítse az erőforráscsoport nevének értékét
AZURE_RESOURCE_GROUP
.Adja meg az ARM-üzembe helyezési műveletek bemenetét
region
a régióban.- Nyissa meg
templates/azuredeploy.resourcegroup.parameters.json
és frissítse a tulajdonságotrgLocation
a régióra.
- Nyissa meg
Nyissa meg a Műveletek lehetőséget, és válassza a Munkafolyamat futtatása lehetőséget.
Ellenőrizze, hogy a művelet sikeresen futott-e, ha zöld pipát keres a Műveletek lapon.
Miután létrehozta az erőforrásokat, lépjen a Műveletek elemre, válassza az Azure-erőforrások létrehozása lehetőséget, és tiltsa le a munkafolyamatot.
Közzétételi profil titkos kulcsának létrehozása
Az Azure Portalon nyissa meg a munkafolyamattal
Create Azure Resources
létrehozott új átmeneti App Service-t (Slot).Válassza a Közzétételi profil lekérése lehetőséget.
Nyissa meg a közzétételi profilfájlt egy szövegszerkesztőben, és másolja a tartalmát.
Hozzon létre egy új GitHub-titkos kulcsot a következőhöz
AZURE_WEBAPP_PUBLISH_PROFILE
: .
Az alkalmazás létrehozása és üzembe helyezése
A buildelési és üzembe helyezési munkafolyamat futtatása:
Nyissa meg a
workflow.yaml
fájlt az adattárban.github/workflows
.Ellenőrizze, hogy a környezeti változók
AZURE_RESOURCE_GROUP
a ,AZURE_WEBAPP_NAME
,SQLSERVER_NAME
ésDATABASE_NAME
megegyeznek-e a benne lévőkkelinfraworkflow.yml
.Ellenőrizze, hogy az alkalmazás üzembe lett-e helyezve, ha megtekinti a Swap to production slot output URL-címét. Látnia kell egy mintaalkalmazást, a Saját TodoList-alkalmazást.
Az erőforrások eltávolítása
Ha már nincs szüksége a mintaprojektre, törölje az erőforráscsoportot az Azure Portalon, és törölje az adattárat a GitHubon.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: