Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. Container Apps vytvoří novou revizi založenou na aktualizované imagi kontejneru.
Commity do konkrétní větve vašeho úložiště spouštějí kanál. Při vytváření pipelíny se rozhodnete, která větev je spouštěčem.
Azure Pipelines úloha pro Container Apps
Úloha podporuje následující scénáře:
- Sestavte ze souboru Dockerfile a nasaďte je do container Apps.
- Sestavte ze zdrojového kódu bez souboru Dockerfile a nasaďte do Container Apps. Mezi podporované jazyky patří .NET, Java, Node.js, PHP a Python.
- Nasaďte existující image kontejneru do Container Apps.
V produkční verzi se tato úloha dodává s Azure DevOps a nevyžaduje explicitní instalaci. Kompletní dokumentaci najdete v tématu AzureContainerApps@1 – úloha Nasazení služby Azure Container Apps v1.
Příklady použití
Následuje několik běžných scénářů 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 appSourcePathsouboru .
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 autentizuje u registru pomocí servisního připojení. Pokud identita připojení služby není přiřazena k AcrPush roli registru, zadejte správcovské přihlašovací údaje registru pomocí vstupních parametrů acrUsername a 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)'
Důležité
Pokud vytváříte image kontejneru v samostatném kroku, nezapomeňte místo stabilní značky latestpoužít jedinečnou značku, například ID sestavení. Další informace najdete v tématu Osvědčené postupy pro image tagy.
Ověřování pomocí služby Azure Container Registry
Úloha Container Apps se musí ověřit ve službě Azure Container Registry, aby se odeslala image kontejneru. Aplikace kontejneru se musí také autentizovat v registru kontejneru pro stažení obrazu kontejneru.
Pokud chcete nahrát image, úloha se automaticky ověří v kontejnerovém registru uvedeném v acrName pomocí připojení služby uvedené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.
Container Apps používá ke stažení image z container registry buď spravovanou identitu (doporučeno), nebo přihlašovací údaje správce k ověření. 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 vstupy úlohy acrUsername a acrPassword.
Konfigurace
Provedením následujících kroků nakonfigurujte kanál Azure DevOps pro nasazení do Container Apps.
- Vytvoření úložiště Azure DevOps pro vaši aplikaci
- Vytvořte kontejnerovou aplikaci s povolenou spravovanou identitou
-
AcrPullPřiřazení role registru kontejneru ke spravované identitě aplikace kontejneru - 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 dokončení postupů v tomto článku potřebujete oprávnění přispěvatele nebo vlastníka předplatného Azure. Další informace najdete v tématu Přiřazení rolí Azure pomocí Azure portálu. |
| Projekt Azure DevOps | Přejděte na Azure DevOps a vyberte Get started with Azure. 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 aplikace v úložišti.
Přihlaste se k Azure DevOps a přejděte ke svému projektu.
V levém podokně vyberte Repos.
Vyberte Importovat úložiště.
Zadejte následující hodnoty a pak vyberte Importovat:
Pole Hodnota Typ úložiště Git Adresa URL klonování https://github.com/Azure-Samples/containerapps-albumapi-csharp.git Vyberte Importovat.
Vyberte Clone pro zobrazení adresy URL úložiště a její zkopírování.
Otevřete příkazový řádek a spusťte následující příkaz:
git clone <REPOSITORY_URL> my-container-appNahraďte
<REPOSITORY_URL>zkopírovanou adresou URL.
Vytvoření aplikace kontejneru a konfigurace spravované identity
Pomocí následujících kroků vytvořte aplikaci kontejneru. Příkaz az containerapp up vytvoří prostředky Azure, sestaví image kontejneru, uloží image do registru a nasadí aplikaci kontejneru.
Po vytvoření aplikace můžete aplikaci přidat spravovanou identitu a přiřadit jí roli AcrPull, aby identita mohla stahovat obrazy z registru.
Přepněte do složky src klonovaného úložiště:
cd my-container-app cd srcPomocí příkazu vytvořte prostředky Azure a nasaďte aplikaci kontejneru
az containerapp up:az containerapp up \ --name my-container-app \ --source . \ --ingress externalNávod
Pokud sestavení selže s chybou úložiště Debian, ujistěte se, že používáte nejnovější verzi Azure CLI a rozšíření containerapp spuštěním příkazu
az extension add --name containerapp --upgrade. Případně přidejte do projektu soubor Dockerfile, abyste mohli mít větší kontrolu nad sestavením.Ve výstupu příkazu si poznamenejte název registru kontejneru Azure.
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.Povolení spravované identity pro aplikaci kontejneru:
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assignedPoznamenejte si principální ID spravované identity ve výstupu příkazu.
AcrPullPřiřaďte roli služby 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 hlavního objektu spravované identity a<ACR_RESOURCE_ID>ID prostředku služby Container Registry.Nakonfigurujte aplikaci kontejneru tak, aby používala spravovanou identitu k načtení imagí z registru kontejneru:
az containerapp registry set \ --name my-container-app \ --resource-group my-container-app-rg \ --server <ACR_NAME>.azurecr.io \ --identity systemNahraďte
<ACR_NAME>názvem vašeho registru kontejneru Azure.
Vytvoření připojení služby Azure DevOps
Pokud chcete službu 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 vytvořit připojení ke službě.
Vyberte Azure Resource Manager a pak vyberte Další.
Vyberte Registraci aplikace (automatická) a pak vyberte Další.
Zadejte následující hodnoty a pak 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 Vytvořit kanál.
Vyberte Azure Repos Git.
Poznámka:
Pokud nevidíte Azure Repos Git jako možnost, ujistěte se, že je váš zdrojový kód commitován do úložiště Git ve vašem projektu Azure DevOps.
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. Nahraďte<ACR_NAME>názvem vašeho registru kontejneru Azure.Zvolte Uložit a Spustit.
Spuštění Azure Pipelines zahájí sestavení a nasazení kontejnerové aplikace. Pokud chcete zkontrolovat jeho průběh, přejděte na Pipelines a vyberte běh. Během prvního spuštění pipeline se může zobrazit výzva k udělení oprávnění pipeline pro použití vašeho připojení ke službě.
Pokud chcete nasadit novou revizi aplikace, nasdílejte do hlavní větve nové potvrzení.