Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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 munkafolyamat akkor aktiválódik, amikor egy adott ágra követ el a tárhelyedben. 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 latesthelyett. 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 acrUsernameacrPassword a bemeneteket.
Rendszerképek üzembe helyezése nem ACR-nyilvántartásokból
Az Azure Container Registry (ACR) mellett az Azure Container Apps más adatbázisokban, például a GitHub Container Registryben (GHCR) üzemeltetett tárolórendszerképeket is támogatja. Ez a szakasz bemutatja, hogyan telepíthet konténerképeket a GitHub Container Registry-ből, beleértve a nyilvános és privát képeket is.
Megjegyzés:
Ha nem ACR-beállításjegyzéket (például GHCR-t) használ, akkor is konfigurálnia kell a tárolóalkalmazást a beállításjegyzékkel való hitelesítésre, még akkor is, ha a rendszerkép nyilvános.
Nyilvános rendszerkép üzembe helyezése a GHCR-ből
Ha a tárolólemezkép nyilvános, hitelesítési hitelesítő adatok megadása nélkül is üzembe helyezheti. Az alábbi példa bemutatja, hogyan helyezhet üzembe nyilvános rendszerképet a GHCR-ből az üzembe helyezési művelet használatával.
A parancs futtatása előtt cserélje le <YOUR-GITHUB-USERNAME> a tényleges GitHub-felhasználónevére.
- name: Deploy public GHCR image to Container App
uses: azure/container-apps-deploy-action@v1
with:
containerAppName: my-container-app
resourceGroup: my-container-app-rg
imageToDeploy: ghcr.io/<YOUR-GITHUB-USERNAME>/myimage:latest
registryServer: ghcr.io
Üzembe helyezés előtt konfigurálja a tárolóalkalmazást a GHCR-ből való lekérésre:
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server ghcr.io
Privát rendszerkép üzembe helyezése a GHCR-ből
Ha a rendszerkép privát, hitelesítési hitelesítő adatokat kell megadnia a GitHub Actions-munkafolyamatban. Használjon egy GitHub személyes hozzáférési jogkivonatot (PAT) a read:packages hatókörrel. A jogkivonatot és a felhasználónevet titkos kulcsként tárolhatja a GitHub-adattárban.
- name: Deploy private GHCR image to Container App
uses: azure/container-apps-deploy-action@v1
with:
containerAppName: my-container-app
resourceGroup: my-container-app-rg
imageToDeploy: ghcr.io/<YOUR-GITHUB-USERNAME>/myimage:${{ github.sha }}
registryServer: ghcr.io
registryUsername: ${{ secrets.GHCR_USERNAME }}
registryPassword: ${{ secrets.GHCR_TOKEN }}
Konfigurálja a tárolóalkalmazást, hogy a kép letöltése a GHCR hitelesítési adataival történjen:
az containerapp registry set \
--name my-container-app \
--resource-group my-container-app-rg \
--server ghcr.io \
--username <GHCR_USERNAME> \
--password <GHCR_TOKEN>
Cserélje le a <GHCR_USERNAME>-t a GitHub-felhasználónevére és a <GHCR_TOKEN>-t a személyes hozzáférési tokenjére.
Megjegyzés:
Használjon egyedi címkét, például a Git commit SHA-t (${{ github.sha }}) általános címke helyett, például a legújabbat. Ez segít elkerülni a gyorsítótárazási problémákat, és biztosítja az új változatok megbízható létrehozását.
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
-
AcrPullAz 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 (Az Azure parancssori felülete) | 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 loginEzután telepítse a parancssori felület legújabb Azure Container Apps-bővítményét.
az extension add --name containerapp --upgradeHa 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 srcAzure-erőforrások létrehozása és tárolóalkalmazás üzembe helyezése a
az containerapp upparanccsal.az containerapp up \ --name my-container-app \ --source . \ --ingress externalA 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 tsvCseré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-assignedJegyezze fel a felügyelt identitás egyszerű azonosítóját a parancs kimenetében.
Rendelje hozzá az
AcrPullAzure 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 systemCseré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 jsonCseré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--scopesparaméterben.Másolja ki a JSON-kimenetet a parancsból.
A GitHub-adattárban keresse meg a , és válassza az > lehetőséget.
Adja meg
AZURE_CREDENTIALSa 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-rgCserélje le
<ACR_NAME>az Azure Container Registry nevére. Győződjön meg arról, hogy az ág neve ésbranchesértékei megegyeznekappSourcePathcontainerAppNameaz adattár ésresourceGroupaz 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 .