Üzembe helyezés az Azure Container Appsben az Azure Pipelinesból
Az Azure Container Apps lehetővé teszi, hogy az Azure Pipelines használatával korrektúrákat tegyen közzé a tárolóalkalmazásban. A véglegesítések az Azure DevOps-adattárba való leküldésekor egy folyamat aktiválódik, amely frissíti a tárolóregisztrációs adatbázisban lévő tárolórendszerképet. Az Azure Container Apps egy új változatot hoz létre a frissített tárolórendszerkép alapján.
Az adattár egy adott ágára vonatkozó véglegesítések aktiválják a folyamatot. A folyamat létrehozásakor ön dönti el, hogy melyik ág az eseményindító.
Container Apps Azure Pipelines-feladat
A feladat 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
Az éles kiadással ez a feladat az Azure DevOpshoz tartozik, és már nem igényel explicit telepítést. A teljes dokumentációt az AzureContainerApps@1 – Azure Container Apps Deploy v1 feladatban találja.
Felhasználási példák
Íme néhány gyakori forgatókönyv a feladat használatához. További információkért tekintse meg a feladat dokumentációjá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:
- task: AzureContainerApps@1
inputs:
appSourcePath: '$(Build.SourcesDirectory)/src'
azureSubscription: 'my-subscription-service-connection'
acrName: 'myregistry'
containerAppName: 'my-container-app'
resourceGroup: 'my-container-app-rg'
A feladat a Dockerfile-t appSourcePath
használja a tárolólemezkép létrehozásához. Ha nem található Dockerfile, a feladat megpróbálja 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. A feladat a szolgáltatáskapcsolat használatával hitelesíti a beállításjegyzéket. Ha a szolgáltatáskapcsolat identitása nincs hozzárendelve a AcrPush
beállításjegyzékhez tartozó szerepkörhöz, adja meg a beállításjegyzék rendszergazdai hitelesítő adatait a acrUsername
bemeneti paraméterekkel acrPassword
.
steps:
- task: AzureContainerApps@1
inputs:
azureSubscription: 'my-subscription-service-connection'
containerAppName: 'my-container-app'
resourceGroup: 'my-container-app-rg'
imageToDeploy: 'myregistry.azurecr.io/my-container-app:$(Build.BuildId)'
Fontos
Ha külön lépésben készít 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 buildazonosító, és ne egy stabil címkét, például latest
. 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-feladatnak 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 feladat automatikusan hitelesíti a tárolóregisztrációs adatbázist acrName
a megadott azureSubscription
szolgáltatáskapcsolat használatával. Ha a szolgáltatáskapcsolat identitása nincs hozzárendelve a AcrPush
beállításjegyzékhez tartozó szerepkörhöz, adja meg a beállításjegyzék rendszergazdai hitelesítő adatait acrUsername
az and acrPassword
.
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 feladat céltároló-alkalmazását ú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 feladatokat acrUsername
és acrPassword
a bemeneteket.
Konfiguráció
Az alábbi lépésekkel konfigurálhat egy Azure DevOps-folyamatot az Azure Container Appsben való üzembe helyezéshez.
- Azure DevOps-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- Az Azure Container Apps-feladat telepítése az Azure DevOps Marketplace-ről
- Azure DevOps-szolgáltatáskapcsolat konfigurálása az Azure-előfizetéshez
- Azure DevOps-folyamat 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 . |
Azure DevOps-projekt | Nyissa meg az Azure DevOpsot, és válassza az Ingyenes indítás lehetőséget. Ezután hozzon létre egy új projektet. |
Azure CLI | Telepítse az Azure CLI-t. |
Azure DevOps-adattár létrehozása és a forráskód klónozása
Folyamat létrehozása előtt az alkalmazás forráskódjának egy adattárban kell lennie.
Nyissa meg az Adattár lapot.
A felső navigációs sávon válassza ki az adattárak legördülő menüt, és válassza az Adattár importálása lehetőséget.
Adja meg a következő adatokat, és válassza az Importálás lehetőséget:
Mező Érték Adattár típusa Git Klónozási URL-cím https://github.com/Azure-Samples/containerapps-albumapi-csharp.git
Név my-container-app
Válassza a Klónozás lehetőséget az adattár URL-címének megtekintéséhez és másolásához.
Nyisson meg egy terminált, és futtassa a következő parancsot:
git clone <REPOSITORY_URL> my-container-app
Cserélje le
<REPOSITORY_URL>
a másolt URL-címre.
Tárolóalkalmazás létrehozása és felügyelt identitás konfigurálása
A következő lépésekkel hozza létre a tárolóalkalmazást a az containerapp up
parancs használatával. 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
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.
Azure DevOps-szolgáltatáskapcsolat létrehozása
Az Azure Container Appsben való üzembe helyezéshez létre kell hoznia egy Azure DevOps-szolgáltatáskapcsolatot az Azure-előfizetéséhez.
Az Azure DevOpsban válassza a Project beállításait.
Válassza ki a szolgáltatáskapcsolatokat.
Válassza az Új szolgáltatáskapcsolat lehetőséget.
Válassza az Azure Resource Managert.
Válassza a Szolgáltatásnév (automatikus) lehetőséget, majd a Tovább gombot.
Adja meg a következő adatokat, és válassza a Mentés lehetőséget:
Mező Érték Előfizetés Válassza ki az Azure-előfizetését. Erőforráscsoport Válassza ki a tárolóalkalmazást és a tárolóregisztrációs adatbázist tartalmazó erőforráscsoportot ( my-container-app-rg
).Szolgáltatáskapcsolat neve my-subscription-service-connection
A szolgáltatáskapcsolatokkal kapcsolatos további információkért lásd : Csatlakozás a Microsoft Azure-hoz.
Azure DevOps YAML-folyamat létrehozása
Az Azure DevOps-projektben válassza a Folyamatok lehetőséget.
Válassza a New pipeline (Új folyamat) lehetőséget.
Válassza az Azure Repos Git lehetőséget.
Válassza ki a forráskódot (
my-container-app
) tartalmazó adattárat.Válassza a Starter-folyamatot.
A szerkesztőben cserélje le a fájl tartalmát a következő YAML-fájlra:
trigger: branches: include: - main pool: vmImage: ubuntu-latest steps: - task: AzureContainerApps@1 inputs: appSourcePath: '$(Build.SourcesDirectory)/src' azureSubscription: '<AZURE_SUBSCRIPTION_SERVICE_CONNECTION>' acrName: '<ACR_NAME>' containerAppName: 'my-container-app' resourceGroup: 'my-container-app-rg'
Cserélje le
<AZURE_SUBSCRIPTION_SERVICE_CONNECTION>
az előző lépésben létrehozott Azure DevOps-szolgáltatáskapcsolat (my-subscription-service-connection
) nevét és<ACR_NAME>
az Azure Container Registry nevét.Válassza a Mentés és futtatás lehetőséget.
Egy Azure Pipelines-futtatás elkezdi létrehozni és üzembe helyezni a tárolóalkalmazást. A folyamat előrehaladásának ellenőrzéséhez lépjen a Folyamatok elemre, és válassza ki a futtatás lehetőséget. Az első folyamatfuttatás során előfordulhat, hogy a rendszer arra kéri, hogy engedélyezze a folyamatot a szolgáltatáskapcsolat használatára.
Az alkalmazás új változatának üzembe helyezéséhez küldjön le egy új véglegesítést a főágba .