Üzembe helyezés az Azure Container Appsben a GitHub Actions segítésével
Az Azure Container Apps lehetővé teszi a GitHub Actions használatával a változatok közzétételét a tárolóalkalmazásban. A véglegesítések GitHub-adattárba való leküldésekor egy munkafolyamat aktiválódik, amely frissíti a tárolóregisztrációs adatbázis tárolólemezképét. Az Azure Container Apps egy új változatot hoz létre a frissített tárolórendszerkép alapján.
A GitHub Actions-munkafolyamatot az adattár egy adott ágára irányuló véglegesítések aktiválják. A munkafolyamat létrehozásakor ön dönti el, hogy melyik ág aktiválja a munkafolyamatot.
Ez a cikk bemutatja, hogyan hozhat létre teljesen testre szabható munkafolyamatot. Ha kezdő GitHub Actions-munkafolyamatot szeretne létrehozni az Azure CLI-vel, olvassa el a GitHub Actions-munkafolyamat létrehozása az Azure CLI-vel című témakört.
Azure Container Apps GitHub-művelet
A tárolóalkalmazás létrehozásához és üzembe helyezéséhez adja hozzá a műveletet a azure/container-apps-deploy-action
GitHub Actions-munkafolyamathoz.
A művelet a következő forgatókönyveket támogatja:
- Buildelés Dockerfile-ból és üzembe helyezés a Container Appsben
- Buildelés forráskódból Dockerfile nélkül, és üzembe helyezés a Container Appsben. Támogatott nyelvek: .NET, Java, Node.js, PHP és Python
- Meglévő tárolórendszerkép üzembe helyezése a Container Appsben
Felhasználási példák
Íme néhány gyakori forgatókönyv a művelet használatához. További információkért tekintse meg a művelet GitHub Marketplace-oldalát.
Buildelés és üzembe helyezés a Container Appsben
Az alábbi kódrészlet bemutatja, hogyan hozhat létre tárolórendszerképet a forráskódból, és hogyan helyezheti üzembe a Container Appsben.
steps:
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
appSourcePath: ${{ github.workspace }}/src
acrName: myregistry
containerAppName: my-container-app
resourceGroup: my-rg
A művelet a Dockerfile-t appSourcePath
használja a tárolólemezkép létrehozásához. Ha nem található Dockerfile, a művelet megkísérli létrehozni a tárolórendszerképet a forráskódból a következőben appSourcePath
: .
Meglévő tárolórendszerkép üzembe helyezése a Container Appsben
Az alábbi kódrészlet bemutatja, hogyan helyezhet üzembe egy meglévő tárolórendszerképet a Container Appsben.
steps:
- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build and deploy Container App
uses: azure/container-apps-deploy-action@v1
with:
acrName: myregistry
containerAppName: my-container-app
resourceGroup: my-rg
imageToDeploy: myregistry.azurecr.io/app:${{ github.sha }}
Fontos
Ha külön lépésben hoz létre tárolórendszerképet, győződjön meg arról, hogy egy olyan egyedi címkét használ, mint például a véglegesítési SHA a stabil címke latest
helyett. További információ: Képcímke – ajánlott eljárások.
Hitelesítés az Azure Container Registry használatával
Az Azure Container Apps-műveletnek hitelesítenie kell az Azure Container Registryt a tárolórendszerkép leküldéséhez. A tárolóalkalmazásnak az Azure Container Registryvel is hitelesítenie kell a tárolólemezkép lekéréséhez.
Képek leküldéséhez a művelet automatikusan hitelesíti magát a művelethez acrName
megadott azure/login
hitelesítő adatokkal megadott tárolóregisztrációs adatbázissal.
A rendszerképek lekéréséhez az Azure Container Apps felügyelt identitást (ajánlott) vagy rendszergazdai hitelesítő adatokat használ az Azure Container Registryvel való hitelesítéshez. A felügyelt identitás használatához a műveletet üzembe helyező tárolóalkalmazást úgy kell konfigurálni, hogy felügyelt identitást használjon. A beállításjegyzék rendszergazdai hitelesítő adataival való hitelesítéshez állítsa be a művelet és acrUsername
acrPassword
a bemeneteket.
Konfiguráció
Az alábbi lépésekkel konfigurálhat egy GitHub Actions-munkafolyamatot az Azure Container Appsben való üzembe helyezéshez.
- GitHub-adattár létrehozása az alkalmazáshoz
- Tárolóalkalmazás létrehozása engedélyezett felügyelt identitással
AcrPull
Az Azure Container Registry szerepkörének hozzárendelése a tárolóalkalmazás felügyelt identitásához- Titkos kódok konfigurálása a GitHub-adattárban
- GitHub Actions-munkafolyamat létrehozása
Előfeltételek
Követelmény | Utasítások |
---|---|
Azure-fiók | Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot. A folytatáshoz az Azure-előfizetés közreműködői vagy tulajdonosi engedélyére van szüksége. Részletekért tekintse meg az Azure-szerepkörök hozzárendelését az Azure Portalon . |
GitHub-fiók | Regisztráljon ingyenesen. |
Azure CLI | Telepítse az Azure CLI-t. |
GitHub-adattár létrehozása és forráskód klónozása
A munkafolyamat létrehozása előtt az alkalmazás forráskódjának egy GitHub-adattárban kell lennie.
Jelentkezzen be az Azure-ba az Azure CLI-vel.
az login
Ezután telepítse a parancssori felület legújabb Azure Container Apps-bővítményét.
az extension add --name containerapp --upgrade
Ha nincs saját GitHub-adattára, hozzon létre egyet egy mintából.
- Új adattár létrehozásához lépjen a következő helyre:
- Nevezze el az adattárat
my-container-app
.
Klónozza az adattárat a helyi gépre.
git clone https://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/my-container-app.git
Tárolóalkalmazás létrehozása engedélyezett felügyelt identitással
Hozza létre a tárolóalkalmazást a az containerapp up
következő lépésekben található paranccsal. Ez a parancs létrehozza az Azure-erőforrásokat, létrehozza a tárolórendszerképet, tárolja a lemezképet egy beállításjegyzékben, és üzembe helyezi egy tárolóalkalmazásban.
Az alkalmazás létrehozása után hozzáadhat egy felügyelt identitást az alkalmazáshoz, és hozzárendelheti az identitást a AcrPull
szerepkörhöz, hogy lehetővé tegye az identitás számára a lemezképek lekérését a beállításjegyzékből.
Váltson a klónozott adattár src mappájára.
cd my-container-app cd src
Azure-erőforrások létrehozása és tárolóalkalmazás üzembe helyezése a
az containerapp up
paranccsal.az containerapp up \ --name my-container-app \ --source . \ --ingress external
A parancs kimenetében jegyezze fel az Azure Container Registry nevét.
Kérje le a tárolóregisztrációs adatbázis teljes erőforrás-azonosítóját.
az acr show --name <ACR_NAME> --query id --output tsv
Cserélje le a
<ACR_NAME>
elemet a tárolójegyzék nevére.Felügyelt identitás engedélyezése a tárolóalkalmazáshoz.
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assigned \ --output tsv
Jegyezze fel a felügyelt identitás egyszerű azonosítóját a parancs kimenetében.
Rendelje hozzá az
AcrPull
Azure Container Registry szerepkörét a tárolóalkalmazás felügyelt identitásához.az role assignment create \ --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \ --role AcrPull \ --scope <ACR_RESOURCE_ID>
Cserélje le
<MANAGED_IDENTITY_PRINCIPAL_ID>
a felügyelt identitás egyszerű azonosítójára és<ACR_RESOURCE_ID>
az Azure Container Registry erőforrás-azonosítójára.Konfigurálja a tárolóalkalmazást úgy, hogy a felügyelt identitás használatával lekérje a rendszerképeket az Azure Container Registryből.
az containerapp registry set \ --name my-container-app \ --resource-group my-container-app-rg \ --server <ACR_NAME>.azurecr.io \ --identity system
Cserélje le
<ACR_NAME>
az Azure Container Registry nevére.
Titkos kódok konfigurálása a GitHub-adattárban
A GitHub-munkafolyamathoz egy titkos kódra van szükség, amely az Azure-ral való hitelesítéshez szükséges AZURE_CREDENTIALS
. A titkos kód tartalmazza a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoport közreműködői szerepkörrel rendelkező szolgáltatásnév hitelesítő adatait.
Hozzon létre egy szolgáltatásnevet a közreműködői szerepkörrel a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoporton.
az ad sp create-for-rbac \ --name my-app-credentials \ --role contributor \ --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/my-container-app-rg \ --json-auth \ --output json
Cserélje le
<SUBSCRIPTION_ID>
az Azure-előfizetés azonosítójára. Ha a tárolóregisztrációs adatbázis egy másik erőforráscsoportban található, adja meg mindkét erőforráscsoportot a--scopes
paraméterben.Másolja ki a JSON-kimenetet a parancsból.
A GitHub-adattárban lépjen a Gépház> Secrets>Actions elemre, és válassza az Új tárház titkos kódját.
Adja meg
AZURE_CREDENTIALS
a nevet, és illessze be a JSON-kimenet tartalmát értékként.Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.
GitHub Actions-munkafolyamat létrehozása
A GitHub-adattárban lépjen a Műveletek elemre, és válassza az Új munkafolyamat lehetőséget.
Válassza a Munkafolyamat beállítása lehetőséget.
Illessze be a következő YAML-et a szerkesztőbe.
name: Azure Container Apps Deploy on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Log in to Azure uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Build and deploy Container App uses: azure/container-apps-deploy-action@v1 with: appSourcePath: ${{ github.workspace }}/src acrName: <ACR_NAME> containerAppName: my-container-app resourceGroup: my-container-app-rg
Cserélje le
<ACR_NAME>
az Azure Container Registry nevére. Győződjön meg arról, hogy az ág neve ésbranches
értékei megegyeznekappSourcePath
containerAppName
az adattár ésresourceGroup
az Azure-erőforrások értékeivel.Véglegesítse a főág módosításait.
Egy GitHub Actions-munkafolyamat futtatásának meg kell kezdődnie a tárolóalkalmazás létrehozásához és üzembe helyezéséhez. A folyamat állapotának ellenőrzéséhez lépjen a Műveletek elemre.
Az alkalmazás új változatának üzembe helyezéséhez küldjön le egy új véglegesítést a főágba .