Megosztás a következőn keresztül:


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:

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.

  1. 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 Ez objectId 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ént AZURE_CLIENT_ID használni kívánt értéket.

  2. Hozzon létre egy szolgáltatásnevet. Cserélje le az $appID appId-et a JSON-kimenetből. Ez a parancs egy másik objectId JSON-kimenetet hoz létre a következő lépésben. Az új objectId a assignee-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 új objectId a assignee-object-id.

    Másolja ki a appOwnerTenantId gitHub-titkos kódként való használathoz későbbi használatra AZURE_TENANT_ID .

     az ad sp create --id $appId
    
  3. 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áltra assignee-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
    
  4. 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 vagy repo: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.
    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"
        ]
    }
    

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.

  1. A GitHubon nyissa meg az adattárat.

  2. Nyissa meg a Gépház a navigációs menüben.

  3. Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.

    Képernyőkép egy titkos kód hozzáadásáról

  4. Válassza az Új tárház titkos kódját.

  5. Titkos kulcsok létrehozása a következőhöz AZURE_CLIENT_ID: , AZURE_TENANT_IDés AZURE_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
  6. Mentse az egyes titkos kulcsokat a Titkos kód hozzáadása gombra kattintva.

GitHub-titkos kódok hozzáadása a buildhez

  1. Hozzon létre két új titkos kódot a GitHub-adattárban SQLADMIN_PASS és SQLADMIN_LOGINa . 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.

  2. 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ét SubscriptionId .

    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:

  1. Nyissa meg a infraworkflow.yml fájlt az adattárban .github/workflows .

  2. Frissítse az erőforráscsoport nevének értékét AZURE_RESOURCE_GROUP .

  3. Adja meg az ARM-üzembe helyezési műveletek bemenetét region a régióban.

    1. Nyissa meg templates/azuredeploy.resourcegroup.parameters.json és frissítse a tulajdonságot rgLocation a régióra.
  4. Nyissa meg a Műveletek lehetőséget, és válassza a Munkafolyamat futtatása lehetőséget.

    Erőforrások hozzáadásához futtassa a GitHub Actions munkafolyamatot.

  5. Ellenőrizze, hogy a művelet sikeresen futott-e, ha zöld pipát keres a Műveletek lapon.

    A létrehozási erőforrások sikeres futtatása.

  6. 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.

    Tiltsa le az Azure-erőforrások létrehozása munkafolyamatot.

Közzétételi profil titkos kulcsának létrehozása

  1. Az Azure Portalon nyissa meg a munkafolyamattal Create Azure Resources létrehozott új átmeneti App Service-t (Slot).

  2. Válassza a Közzétételi profil lekérése lehetőséget.

  3. Nyissa meg a közzétételi profilfájlt egy szövegszerkesztőben, és másolja a tartalmát.

  4. 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:

  1. Nyissa meg a workflow.yaml fájlt az adattárban .github/workflows .

  2. Ellenőrizze, hogy a környezeti változók AZURE_RESOURCE_GROUPa , AZURE_WEBAPP_NAME, SQLSERVER_NAMEés DATABASE_NAME megegyeznek-e a benne lévőkkel infraworkflow.yml.

  3. 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