Nasazení do Azure Container Apps ze služby Azure Pipelines
Azure Container Apps umožňuje používat Azure Pipelines k publikování revizí do vaší aplikace kontejneru. Při odesílání potvrzení do úložiště Azure DevOps se aktivuje kanál, který aktualizuje image kontejneru v registru kontejneru. Azure Container Apps vytvoří novou revizi na základě aktualizované image kontejneru.
Potvrdí se do konkrétní větve ve vašem úložišti, aby aktivoval kanál. Při vytváření kanálu se rozhodnete, která větev je triggerem.
Úloha Container Apps Azure Pipelines
Úloha podporuje následující scénáře:
- Sestavení ze souboru Dockerfile a nasazení do kontejnerových aplikací
- Sestavte ze zdrojového kódu bez souboru Dockerfile a nasaďte je do Container Apps. Mezi podporované jazyky patří .NET, Java, Node.js, PHP a Python.
- Nasazení existující image kontejneru do Container Apps
V produkční verzi se tato úloha dodává s Azure DevOps a už nevyžaduje explicitní instalaci. Kompletní dokumentaci najdete v tématu AzureContainerApps@1 – úloha Nasazení služby Azure Container Apps v1.
Příklady použití
Tady jsou některé běžné scénáře použití úlohy. Další informace najdete v dokumentaci k úkolu.
Sestavení a nasazení do kontejnerových aplikací
Následující fragment kódu ukazuje, jak sestavit image kontejneru ze zdrojového kódu a nasadit ji do Container Apps.
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'
Úloha používá k sestavení image kontejneru soubor Dockerfile appSourcePath
. Pokud se nenajde žádný soubor Dockerfile, úloha se pokusí sestavit image kontejneru ze zdrojového kódu v appSourcePath
souboru .
Nasazení existující image kontejneru do Container Apps
Následující fragment kódu ukazuje, jak nasadit existující image kontejneru do Container Apps. Úloha se ověřuje v registru pomocí připojení služby. Pokud identita připojení služby není přiřazená AcrPush
roli registru, zadejte přihlašovací údaje správce registru pomocí acrUsername
parametrů a acrPassword
vstupních parametrů.
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)'
Důležité
Pokud vytváříte image kontejneru v samostatném kroku, ujistěte se, že používáte jedinečnou značku, například ID sestavení, místo stabilní značky, jako latest
je . Další informace najdete v tématu Osvědčené postupy pro značky obrázků.
Ověřování pomocí služby Azure Container Registry
Úloha Azure Container Apps se musí ověřit ve službě Azure Container Registry, aby se odeslala image kontejneru. Aplikace kontejneru se také musí ověřit ve službě Azure Container Registry, aby si stáhla image kontejneru.
Pokud chcete nasdílit image, úloha se automaticky ověří v registru kontejneru zadaném pomocí acrName
připojení služby poskytovaného v azureSubscription
. Pokud identita připojení služby není přiřazena AcrPush
k roli registru, zadejte přihlašovací údaje správce registru pomocí acrUsername
a acrPassword
.
K vyžádání imagí používá Služba Azure Container Apps k ověření ve službě Azure Container Registry spravovanou identitu (doporučeno) nebo přihlašovací údaje správce. Pokud chcete použít spravovanou identitu, musí být cílová aplikace kontejneru pro úlohu nakonfigurovaná tak, aby používala spravovanou identitu. Pokud se chcete ověřit pomocí přihlašovacích údajů správce registru, nastavte acrUsername
jeho a acrPassword
vstupy.
Konfigurace
Pomocí následujících kroků nakonfigurujte kanál Azure DevOps pro nasazení do Azure Container Apps.
- Vytvoření úložiště Azure DevOps pro vaši aplikaci
- Vytvoření aplikace kontejneru s povolenou spravovanou identitou
AcrPull
Přiřazení role služby Azure Container Registry ke spravované identitě aplikace kontejneru- Instalace úlohy Azure Container Apps z Azure DevOps Marketplace
- Konfigurace připojení služby Azure DevOps pro vaše předplatné Azure
- Vytvoření kanálu Azure DevOps
Požadavky
Požadavek | Pokyny |
---|---|
Účet Azure | Pokud ho nemáte, vytvořte si účet zdarma. K pokračování potřebujete oprávnění přispěvatele nebo vlastníka předplatného Azure. Podrobnosti najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal . |
Projekt Azure DevOps | Přejděte do Azure DevOps a vyberte Začít zdarma. Pak vytvořte nový projekt. |
Azure CLI | Nainstalujte rozhraní příkazového řádku Azure CLI. |
Vytvoření úložiště Azure DevOps a naklonování zdrojového kódu
Před vytvořením kanálu musí být zdrojový kód vaší aplikace v úložišti.
Přihlaste se k Azure DevOps a přejděte ke svému projektu.
Otevřete stránku Úložiště.
V horním navigačním panelu vyberte rozevírací seznam úložišť a vyberte Importovat úložiště.
Zadejte následující informace a vyberte Importovat:
Pole Hodnota Typ úložiště Git Adresa URL klonování https://github.com/Azure-Samples/containerapps-albumapi-csharp.git
Název my-container-app
Výběrem možnosti Clone (Klonovat ) zobrazte adresu URL úložiště a zkopírujte ji.
Otevřete terminál a spusťte následující příkaz:
git clone <REPOSITORY_URL> my-container-app
Nahraďte
<REPOSITORY_URL>
zkopírovanou adresou URL.
Vytvoření aplikace kontejneru a konfigurace spravované identity
Pomocí následujícího postupu vytvořte aplikaci kontejneru az containerapp up
. Tento příkaz vytvoří prostředky Azure, sestaví image kontejneru, uloží image do registru a nasadí do aplikace kontejneru.
Po vytvoření aplikace můžete do aplikace přidat spravovanou identitu a přiřadit ji, AcrPull
aby identita mohla načítat image z registru.
Přejděte do složky src klonovaného úložiště.
cd my-container-app cd src
Vytvořte prostředky Azure a pomocí příkazu nasaďte aplikaci kontejneru.
az containerapp up
az containerapp up \ --name my-container-app \ --source . \ --ingress external
Ve výstupu příkazu si poznamenejte název služby Azure Container Registry.
Získejte úplné ID prostředku registru kontejneru.
az acr show --name <ACR_NAME> --query id --output tsv
<ACR_NAME>
nahraďte názvem vašeho registru.Povolte spravovanou identitu pro aplikaci kontejneru.
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assigned
Poznamenejte si ID objektu zabezpečení spravované identity ve výstupu příkazu.
AcrPull
Přiřaďte roli služby Azure Container Registry spravované identitě aplikace kontejneru.az role assignment create \ --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \ --role AcrPull \ --scope <ACR_RESOURCE_ID>
Nahraďte
<MANAGED_IDENTITY_PRINCIPAL_ID>
ID objektu zabezpečení spravované identity a<ACR_RESOURCE_ID>
ID prostředku služby Azure Container Registry.Nakonfigurujte aplikaci kontejneru tak, aby používala spravovanou identitu k načtení imagí ze služby Azure Container Registry.
az containerapp registry set \ --name my-container-app \ --resource-group my-container-app-rg \ --server <ACR_NAME>.azurecr.io \ --identity system
Nahraďte
<ACR_NAME>
názvem služby Azure Container Registry.
Vytvoření připojení služby Azure DevOps
Pokud chcete službu Azure Container Apps nasadit, musíte pro své předplatné Azure vytvořit připojení služby Azure DevOps.
V Azure DevOps vyberte Nastavení projektu.
Vyberte Připojení služeb.
Vyberte Nové připojení služby.
Vyberte Azure Resource Manager.
Vyberte Instanční objekt (automatický) a vyberte Další.
Zadejte následující informace a vyberte Uložit:
Pole Hodnota Předplatné Vyberte své předplatné Azure. Skupina prostředků Vyberte skupinu prostředků ( my-container-app-rg
), která obsahuje vaši aplikaci kontejneru a registr kontejneru.Název připojení služby my-subscription-service-connection
Další informace o připojeních služeb najdete v tématu Připojení k Microsoft Azure.
Vytvoření kanálu YAML Azure DevOps
V projektu Azure DevOps vyberte Kanály.
Vyberte New pipeline (Nový kanál).
Vyberte Git Azure Repos.
Vyberte úložiště, které obsahuje váš zdrojový kód (
my-container-app
).Vyberte počáteční kanál.
V editoru nahraďte obsah souboru následujícím YAML:
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'
Nahraďte
<AZURE_SUBSCRIPTION_SERVICE_CONNECTION>
názvem připojení služby Azure DevOps (my-subscription-service-connection
), které jste vytvořili v předchozím kroku, a<ACR_NAME>
názvem služby Azure Container Registry.Zvolte Uložit a Spustit.
Spustí se spuštění azure Pipelines, které spustí sestavení a nasazení aplikace kontejneru. Pokud chcete zkontrolovat jeho průběh, přejděte na Kanály a vyberte spuštění. Během prvního spuštění kanálu se může zobrazit výzva k autorizaci kanálu tak, aby používal připojení služby.
Pokud chcete nasadit novou revizi aplikace, nasdílejte do hlavní větve nové potvrzení.