Udostępnij za pośrednictwem


AzureContainerApps@1 — zadanie Wdrażanie usługi Azure Container Apps w wersji 1

Zadanie usługi Azure DevOps do kompilowania i wdrażania usługi Azure Container Apps.

Składnia

# Azure Container Apps Deploy v1
# An Azure DevOps Task to build and deploy Azure Container Apps.
- task: AzureContainerApps@1
  inputs:
  # advanced
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #appSourcePath: # string. Application source path. 
    azureSubscription: # string. Alias: connectedServiceNameARM. Required. Azure Resource Manager connection. 
    #acrName: # string. Azure Container Registry name. 
    #acrUsername: # string. Azure Container Registry username. 
    #acrPassword: # string. Azure Container Registry password. 
    #dockerfilePath: # string. Dockerfile path. 
    #imageToBuild: # string. Docker image to build. 
    #imageToDeploy: # string. Docker image to deploy. 
    #containerAppName: # string. Azure Container App name. 
    #resourceGroup: # string. Azure resource group name. 
    #containerAppEnvironment: # string. Azure Container App environment. 
    #runtimeStack: # string. Application runtime stack. 
    #targetPort: # string. Application target port. 
    #location: # string. Location of the Container App. 
    #environmentVariables: # string. Environment variables. 
    #ingress: # string. Ingress setting. 
    #yamlConfigPath: # string. YAML configuration file path. 
    #disableTelemetry: # boolean. Disable telemetry.

Dane wejściowe

workingDirectory - Katalog roboczy
Alias wejściowy: cwd. string.

Bieżący katalog roboczy, w którym jest uruchamiany skrypt. Pusty to katalog główny repozytorium (kompilacja) lub artefakty (wydanie), czyli $(System.DefaultWorkingDirectory).


appSourcePath - Ścieżka źródłowa aplikacji
string.

Ścieżka bezwzględna w module uruchamiającym kod aplikacji źródłowej do skompilowania. Jeśli nie zostanie podany, należy podać argument "imageToDeploy", aby upewnić się, że aplikacja kontenera ma obraz do odwołania.

W przypadku wypychania nowego obrazu do usługi ACR acrName wymagane są dane wejściowe zadań i appSourcePath .


azureSubscription - Połączenie usługi Azure Resource Manager
Alias wejściowy: connectedServiceNameARM. string. Wymagane.

Określ połączenie usługi Azure Resource Manager dla wdrożenia. To połączenie z usługą musi być połączone z subskrypcją platformy Azure użytkownika, w której zostanie utworzona/zaktualizowana aplikacja kontenera. To połączenie z usługą musi mieć odpowiednie uprawnienia, aby wprowadzić te zmiany w ramach subskrypcji, na przykład rolę Współautor.


acrName - nazwa Azure Container Registry
string.

Nazwa Azure Container Registry, do którego zostanie wypchnięty obraz aplikacji możliwej do uruchomienia.

W przypadku wypychania nowego obrazu do usługi ACR acrName wymagane są dane wejściowe zadań i appSourcePath .


acrUsername - nazwa użytkownika Azure Container Registry
string.

Nazwa użytkownika używana do uwierzytelniania żądań wypychania w udostępnionym rejestrze usługi Azure Contrainer. Jeśli nie zostanie podany, token dostępu zostanie wygenerowany za pośrednictwem polecenia "az acr login" i przekazany do polecenia "docker login" w celu uwierzytelnienia żądań.


acrPassword - hasło Azure Container Registry
string.

Hasło używane do uwierzytelniania żądań wypychania w udostępnionym rejestrze usługi Azure Contrainer. Jeśli nie zostanie podany, token dostępu zostanie wygenerowany za pośrednictwem polecenia "az acr login" i przekazany do polecenia "docker login" w celu uwierzytelnienia żądań.


dockerfilePath - Ścieżka pliku Dockerfile
string.

Ścieżka względna (_without prefiksy plików (zobacz następujące przykłady) do pliku Dockerfile w podanym źródle aplikacji, które należy użyć do skompilowania obrazu, który następnie zostanie wypchnięty do usługi ACR i wdrożony w aplikacji kontenera. Jeśli nie zostanie podana, to zadanie sprawdzi, czy w katalogu głównym podanego źródła aplikacji znajduje się plik o nazwie "Dockerfile" i użyje go do skompilowania obrazu. W przeciwnym razie konstruktor Oryx++ zostanie użyty do utworzenia obrazu.


imageToBuild - Obraz platformy Docker do skompilowania
string.

Niestandardowa nazwa obrazu, który ma zostać skompilowany, wypchnięty do usługi ACR i wdrożony w aplikacji kontenera przez to zadanie. Uwaga: ta nazwa obrazu powinna zawierać serwer ACR; np. <acr-name>.azurecr.io/<repo>:<tag>. Jeśli ten argument nie zostanie podany, domyślna nazwa obrazu zostanie skonstruowana w postaci <acr-name>.azurecr.io/ado-task/container-app:<build-id>.<build-number>.


imageToDeploy - Obraz platformy Docker do wdrożenia
string.

Nazwa obrazu, który został już wypchnięty do usługi ACR i zostanie wdrożona w aplikacji kontenera przez to zadanie. Uwaga: nazwa obrazu powinna zawierać serwer ACR; np. <acr-name>.azurecr.io/<repo>:<tag>. Jeśli ten argument nie zostanie podany, zostanie użyta wartość podana (lub określona) dla argumentu "imageToBuild". Jeśli ten obraz znajduje się w wystąpieniu usługi ACR, które wymaga uwierzytelniania do ściągnięcia, acrName argumentu lub acrUsername argumentów i acrPassword , można podać w celu uwierzytelnienia żądań do wystąpienia usługi ACR.


containerAppName - Nazwa aplikacji kontenera platformy Azure
string.

Nazwa aplikacji kontenera platformy Azure, która zostanie utworzona lub zaktualizowana. Jeśli nie zostanie podana, ta wartość będzie mieć postać ado-task-app-<build-id>-<build-number>.


resourceGroup - Nazwa grupy zasobów platformy Azure
string.

Istniejąca grupa zasobów, w ramach którego zostanie utworzona aplikacja kontenera platformy Azure (lub obecnie istnieje). Jeśli nie zostanie podana, ta wartość będzie mieć postać <container-app-name>-rg.


containerAppEnvironment - Środowisko aplikacji kontenera platformy Azure
string.

Nazwa środowiska aplikacji kontenera platformy Azure do użycia z aplikacją. Jeśli nie zostanie podane, zostanie użyte istniejące środowisko w grupie zasobów aplikacji kontenera, w przeciwnym razie środowisko zostanie utworzone w formacie <container-app-name>-env.


runtimeStack - Stos środowiska uruchomieniowego aplikacji
string.

Stos wersji platformy używany w końcowym obrazie aplikacji możliwej do uruchomienia, który jest wdrażany w aplikacji kontenera. Wartość powinna zostać podana w formacji <platform>:<version>. Jeśli nie zostanie podana, ta wartość jest określana przez oryx na podstawie zawartości dostarczonej aplikacji. Zapoznaj się z tym dokumentem , aby uzyskać więcej informacji na temat obsługiwanych stosów środowiska uruchomieniowego dla rozwiązania Oryx.


targetPort - Port docelowy aplikacji
string.

Port docelowy, na który będzie nasłuchiwać aplikacja kontenera. Jeśli nie zostanie podana, ta wartość będzie mieć wartość "80" dla aplikacji języka Python i "8080" dla wszystkich innych obsługiwanych platform.


location - Lokalizacja aplikacji kontenera
string.

Lokalizacja, w ramach którego zostanie wdrożona aplikacja kontenera (i inne utworzone zasoby).


environmentVariables - Zmienne środowiskowe
string.

Lista zmiennych środowiskowych dla kontenera. Wartości rozdzielone spacjami w formacie "key=value". Pusty ciąg w celu wyczyszczenia istniejących wartości. Wartość prefiksu z elementem "secretref:" w celu odwołania się do wpisu tajnego.


ingress - Ustawienie ruchu przychodzącego
string.

Możliwe opcje: zewnętrzne, wewnętrzne, wyłączone. W przypadku ustawienia external wartości (wartość domyślna, jeśli nie zostanie podana podczas tworzenia aplikacji kontenera), aplikacja kontenera będzie widoczna z Internetu lub sieci wirtualnej, w zależności od skonfigurowanego punktu końcowego środowiska aplikacji. Jeśli zostanie ustawiona wartość internal, aplikacja kontenera będzie widoczna tylko w środowisku aplikacji. Jeśli ustawiono wartość disabled, ruch przychodzący zostanie wyłączony dla tej aplikacji kontenera i nie będzie miał punktu końcowego HTTP lub TCP.


yamlConfigPath - Ścieżka pliku konfiguracji YAML
string.

Pełna ścieżka (w ramach wykonywania agenta usługi Azure Pipelines) do pliku YAML zawierającego szczegóły konfiguracji aplikacji kontenera.

Właściwość resourceGroup w pliku konfiguracji YAML nie zostanie użyta; wartość tego argumentu pochodzi z argumentu podanego resourceGroup do zadania lub domyślnej nazwy grupy zasobów wygenerowanej przez zadanie. Wszystkie inne właściwości podane w pliku konfiguracji YAML zastąpią wartości podane jako argumenty tego zadania; jeśli na przykład containerAppName argument zostanie podany do zadania, a name właściwość zostanie ustawiona w pliku konfiguracji YAML, name właściwość w pliku YAML zostanie użyta podczas tworzenia lub aktualizowania aplikacji kontenera.

Argumenty źródła obrazu i aplikacji (np.appSourcePathimageToDeploy , ) będą nadal używane do pierwszej kompilacji i/lub wypychania obrazu używanego przez aplikację kontenera. W tym przypadku podany plik konfiguracji YAML będzie musiał odwoływać się do obrazu określonego przez imageToDeploy (lub imageToBuild, w zależności od scenariusza).

Podczas tworzenia nowej aplikacji kontenera wszystkie właściwości wymienione w pliku konfiguracji YAML (z wyjątkiem resourceGroup wymienionych powyżej) zostaną ustawione podczas tworzenia aplikacji kontenera. Podczas aktualizowania istniejącej aplikacji kontenera tylko właściwości wymienione w pliku zostaną zaktualizowane w aplikacji kontenera.

Obecnie plik YAML nie obsługuje konfigurowania uwierzytelniania tożsamości zarządzanej dla używanego rejestru kontenerów; Aby uzyskać więcej informacji na temat tego problemu, zobacz ten problem z usługą GitHub.

W przypadkach, gdy yamlConfigPath argument jest podany, plik YAML zostanie przekazany do odpowiedniego az containerapp polecenia lub createupdate w zależności od scenariusza. Aby uzyskać więcej informacji na temat zamierzonego zachowania w przypadku podania pliku konfiguracji YAML, zobacz dokumenty połączone z odpowiednimi poleceniami.

Aby uzyskać więcej informacji na temat struktury pliku konfiguracji YAML, odwiedź tę witrynę.


disableTelemetry - Wyłączanie telemetrii
boolean.

W przypadku ustawienia wartości "true" żadne dane telemetryczne nie będą zbierane przez to zadanie usługi Azure DevOps. W przypadku ustawienia wartości "false" lub jeśli ten argument nie zostanie podany, dane telemetryczne zostaną wysłane do firmy Microsoft o scenariuszu kompilacji i wdrażania aplikacji kontenera przeznaczonym dla tego zadania usługi Azure DevOps.


Opcje sterowania zadania

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.

Zmienne wyjściowe

Brak.

Uwagi

To zadanie usługi Azure Pipelines umożliwia użytkownikom łatwe wdrażanie źródła aplikacji w aplikacji kontenera platformy Azure w przepływie pracy usługi Azure Pipelines przez udostępnienie wcześniej utworzonego obrazu, pliku Dockerfile, z którego można skompilować obraz, lub utworzenia obrazu aplikacji możliwego do uruchomienia dla użytkownika za pomocą konstruktora.

Zadanie ma następujące dwa wzorce użycia.

  • Wypychanie obrazu do usługi ACR — podczas wypychania nowego obrazu do usługi ACR acrName wymagane są dane wejściowe zadań i appSourcePath .
  • Wdrożenie wcześniej wypchniętego obrazu — podczas wdrażania wcześniej wypchniętego obrazu imageToDeploy wymagane jest wprowadzenie danych wejściowych zadania. Jeśli ten obraz znajduje się w wystąpieniu usługi ACR, które wymaga uwierzytelniania do ściągnięcia, acrName argumentu lub acrUsername argumentów i acrPassword , można podać w celu uwierzytelnienia żądań do wystąpienia usługi ACR.

Uwaga

Mimo że żadne dane wejściowe zadania nie są oficjalnie oznaczone jako "wymagane" w metadanych tego zadania, należy podać niektóre dane wejściowe, aby to zadanie mogło pomyślnie uruchomić przy użyciu jednego z dwóch głównych narzędzi.

Jeśli plik Dockerfile nie zostanie znaleziony lub podany w podanym źródle aplikacji, następujące kroki są wykonywane przez to zadanie:

  • Używa narzędzia Oryx++ Builder do kompilowania źródła aplikacji przy użyciu narzędzia Oryx w celu utworzenia obrazu aplikacji możliwego do uruchomienia
  • Wypycha ten obraz aplikacji możliwej do uruchomienia do podanego Azure Container Registry
  • Tworzy lub aktualizuje aplikację kontenera na podstawie tego obrazu

Jeśli plik Dockerfile zostanie znaleziony lub odnaleziony w źródle aplikacji, konstruktor nie zostanie użyty, a obraz zostanie skompilowany za pomocą wywołania docker build metody , a aplikacja kontenera zostanie utworzona lub zaktualizowana na podstawie tego obrazu.

Jeśli wcześniej skompilowany obraz został już wypchnięty do wystąpienia usługi ACR i jest dostarczany do tego zadania, żadne źródło aplikacji nie jest wymagane, a obraz zostanie użyty podczas tworzenia lub aktualizowania aplikacji kontenera.

Uruchamianie tego zadania na agentach hostowanych przez firmę Microsoft

Jeśli to zadanie jest uruchamiane na agencie hostowanym przez firmę Microsoft, może się okazać, że to zadanie nie może zostać pomyślnie uruchomione z następującymi systemami operacyjnymi:

  • macOS
    • Moduły uruchamiacze systemu macOS dostarczone przez firmę Microsoft nie są instalowane przy użyciu platformy Docker (więcej informacji można znaleźć tutaj); W związku z tym to zadanie nie może uruchomić żadnych docker poleceń, takich jak wypychanie skompilowanych obrazów aplikacji możliwych do uruchomienia do usługi ACR.
  • Windows
    • Moduły uruchamiane przez firmę Microsoft są dostarczane z zainstalowaną platformą Docker, ale domyślnie obrazy oparte na systemie Linux nie mogą być ściągane; W związku z tym to zadanie nie może ściągnąć konstruktora Oryx w celu utworzenia obrazów aplikacji możliwych do uruchomienia z dostarczonego źródła aplikacji.

Aby uzyskać więcej informacji, zobacz poniższą sekcję wymagań wstępnych platformy Docker .

Powiadomienie o zbieraniu danych/danych telemetrycznych

Domyślnie to zadanie usługi Azure DevOps zbiera następujące dane dla firmy Microsoft:

  • Scenariusz kompilacji i wdrażania aplikacji kontenera przeznaczony dla użytkownika
    • tzn. użyto narzędzia Oryx++ Builder, użyto dostarczonego/znalezionego pliku Dockerfile lub podano wcześniej skompilowany obraz
    • Uwaga: nazwa obrazu nie jest zbierana
  • Czas przetwarzania zadania w milisekundach
  • Wynik zadania
    • tj. powodzenie lub niepowodzenie
  • Jeśli jest używany konstruktor Oryx++, zdarzenia i metryki związane z kompilowaniem udostępnionej aplikacji przy użyciu narzędzia Oryx

Jeśli chcesz wyłączyć zbieranie danych, ustaw disableTelemetry argument na true.

Wymagania wstępne

Przed uruchomieniem tego zadania zasoby platformy Azure i połączenie usługi Azure DevOps są wymagane lub opcjonalne w zależności od argumentów dostarczonych do tego zadania.

Połączenie usługi Azure DevOps

Aby można było wdrożyć na platformie Azure, subskrypcja platformy Azure musi być połączona z serwerem Team Foundation Server lub usługą Azure Pipelines przy użyciu karty Usługi w sekcji ustawień. Dodaj subskrypcję platformy Azure do użycia w definicji Kompilacja lub Release Management, otwierając ekran Administracja kontem (ikona koła zębatego w prawym górnym rogu ekranu), a następnie kliknij kartę Usługi.

Utwórz punkt końcowy usługi ARM i użyj typu punktu końcowego "Azure Resource Manager". Aby uzyskać więcej informacji na temat tworzenia połączeń z usługami, postępuj zgodnie z tym dokumentem.

Interfejs wiersza polecenia platformy Azure

To zadanie wymaga zainstalowania interfejsu wiersza polecenia platformy Azure w agencie usługi Azure Pipelines w celu wykonania różnych poleceń podczas wykonywania zadania. Aby uzyskać więcej informacji na temat sposobu instalowania interfejsu wiersza polecenia platformy Azure na agencie, zobacz ten dokument. Jeśli agent jest już uruchomiony na maszynie, na której zainstalowano interfejs wiersza polecenia platformy Azure, upewnij się, że ponownie uruchomisz agenta, aby zaktualizować wszystkie odpowiednie zmienne środowiskowe.

Docker

To zadanie wymaga zainstalowania platformy Docker w agencie usługi Azure Pipelines w celu wypychania obrazów do podanej Azure Container Registry. Aby uzyskać więcej informacji na temat sposobu instalowania platformy Docker na agencie, zobacz ten dokument.

Ponadto użytkownicy, którzy uruchamiają to zadanie z agentem systemu Windows, mogą napotkać problem polegający na tym, że nie można ściągnąć obrazów opartych na systemie Linux; Aby rozwiązać ten problem, odwiedź tę witrynę lub plik DockerCli.exe w agencie (zazwyczaj w folderze Program Files\Docker\Docker ) i uruchom polecenie

& `.\DockerCli.exe` -SwitchDaemon

Jeśli platforma Docker nie jest zainstalowana na agencie, na którym uruchomiono to zadanie, nadal są włączone następujące scenariusze:

  • Podanie wcześniej utworzonego obrazu do argumentu imageToDeploy wdrażanego przez aplikację kontenera

Jeśli platforma Docker znajduje się na agencie, ale nie może pracować z obrazami opartymi na systemie Linux, następujące scenariusze są nadal włączone:

  • Podanie wcześniej utworzonego obrazu do argumentu imageToDeploy wdrażanego przez aplikację kontenera
  • Dockerfile Udostępnianie jako części źródła aplikacji, które zostanie skompilowane i wdrożone za pomocą aplikacji kontenera
    • Uwaga: Dockerfile nie można mieć żadnych warstw obrazów opartych na systemie Linux

pakiet interfejsu wiersza polecenia

Interfejs wiersza polecenia pakietu jest obsługiwany przez projekt Cloud Native Buildpacks i jest używany przez to zadanie do tworzenia obrazów aplikacji możliwych do uruchomienia dla użytkownika po podaniu kodu źródłowego aplikacji i nie podano ani nie znaleziono dodatkowego pliku Dockerfile. Konstruktor został utworzony przez Oryx, aby pobrać kod źródłowy aplikacji dostarczony do tego zadania i utworzyć obraz, który następnie może zostać wypchnięty do rejestru obrazów i używany w aplikacji kontenera do kompilowania i uruchamiania aplikacji.

Stabilna wersja interfejsu wiersza polecenia pakietu jest instalowana na agencie usługi Azure Pipelines wykonującym zadanie, a w zależności od podstawowego systemu operacyjnego tego agenta różne narzędzia będą używane w celu ułatwienia instalacji:

  • W modułach uruchamiaczy systemu Windows:
    • Aby wykonać zestaw poleceń programu PowerShell, wykonaj następujące czynności:
      • pack Tworzy folder w folderze tymczasowym agenta, jeśli pack folder jeszcze nie istnieje
      • Pobiera interfejs wiersza polecenia .zip pakietu do tego pack folderu
      • Rozpakowuje zawartość z tego .zip pliku i umieszcza je w folderze pack
      • Usuwa element .zip
  • W modułach uruchamiaczy innych niż Windows:
    • curl będzie używany do ściągania .tgz pliku wykonywalnego zawierającego pack plik wykonywalny
    • tar będzie używany do rozpakuj plik .tgz wykonywalny i umieść go pack w /usr/local/bin

Azure Container Registry

Musi istnieć Azure Container Registry, do którego użytkownik może wypychać obrazy kontenerów. To zadanie będzie korzystać z Azure Container Registry, aby wypchnąć skompilowany obraz aplikacji z możliwością uruchamiania do i/lub wdrożyć aplikację kontenera z.

Nazwa Azure Container Registry jest wymagana za pośrednictwem argumentu acrName .

Użytkownik może również podać wartości acrUsername argumentów iacrPassword, które będą uwierzytelniać wywołania wystąpienia Azure Container Registry. Jeśli nie zostanie podany, token dostępu zostanie wygenerowany za pośrednictwem interfejsu wiersza polecenia platformy Azure, który zamiast tego uwierzytelni wywołania.

Środowisko aplikacji kontenera platformy Azure

Zaleca się, aby użytkownik utworzył wcześniej środowisko aplikacji kontenera platformy Azure w celu zwiększenia wydajności zadania. Jeśli środowisko nie zostało utworzone wcześniej lub jeśli nie można odnaleźć środowiska w grupie zasobów używanej do hostowania utworzonej aplikacji kontenera, środowisko zostanie utworzone w ramach az containerapp up polecenia, co może zająć dodatkowy czas.

Przykłady

W poniższych przykładach opisano sposób użycia funkcji AzureContainerApps w różnych scenariuszach.

Minimalny — kompilowanie obrazu aplikacji dla aplikacji kontenera

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w nowej grupie zasobów o nazwie <container-app-name>-rg. Aplikacja kontenera będzie oparta na obrazie utworzonym na podstawie dostarczonego appSourcePath i wypchniętego do dostarczonego wystąpienia usługi ACR. Token dostępu zostanie wygenerowany w celu uwierzytelnienia wypychania do dostarczonego wystąpienia usługi ACR.

Minimum — użyj wcześniej opublikowanego obrazu dla aplikacji kontenera

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    imageToDeploy: mcr.microsoft.com/azuredocs/containerapps-helloworld:latest

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie w nowej grupie zasobów o ado-task-app-<build-id>-<build-number> nazwie <container-app-name>-rg , w której nie utworzono nowego obrazu, ale istniejący obraz o nazwie mcr.microsoft.com/azuredocs/containerapps-helloworld:latest będzie używany dla aplikacji kontenera.

Minimalny — użyj pliku konfiguracji YAML z wcześniej opublikowanym obrazem dla aplikacji kontenera

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    yamlConfigPath: simple-image-container-app.yaml

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie w nowej grupie zasobów o ado-task-app-<build-id>-<build-number> nazwie <container-app-name>-rg , w której nie utworzono nowego obrazu, ale istniejący obraz o nazwie mcr.microsoft.com/azuredocs/containerapps-helloworld:latest będzie używany dla aplikacji kontenera. Dodatkowe właściwości aplikacji kontenera zostaną ściągnięte z simple-image-container-app.yaml pliku i zastąpią wszelkie dodatkowe wartości, które zostałyby podane do zadania jako argumenty z wyłączeniem resourceGroupelementu .

Plik simple-image-container-app.yaml ma następującą strukturę:

properties:
  managedEnvironmentId: /subscriptions/SUBSCRIPTION_ID/resourceGroup/RESOURCE_GROUP/providers/Microsoft.App/managedEnvironments/CONTAINER_APP_ENVIRONMENT
  configuration:
    ingress:
      external: true
      allowInsecure: false
      targetPort: 80
  template:
    containers:
      - image: mcr.microsoft.com/azuredocs/containerapps-helloworld:latest
        name: mysampleimagecontainer

Wartości parametru SUBSCRIPTION_IDRESOURCE_GROUP i CONTAINER_APP_ENVIRONMENT muszą zostać zaktualizowane w celu wskazania pełnego identyfikatora zasobu istniejącego środowiska aplikacji kontenera, którego będzie używać aplikacja kontenera.

Uwierzytelnianie przy użyciu poświadczeń usługi ACR

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    acrUsername: $(ACR_USERNAME_SECRET)
    acrPassword: $(ACR_PASSWORD_SECRET)

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w nowej grupie zasobów o nazwie <container-app-name>-rg. Aplikacja kontenera będzie oparta na obrazie utworzonym na podstawie dostarczonego appSourcePath i wypchniętego do dostarczonego wystąpienia usługi ACR. Podane poświadczenia usługi ACR będą używane do uwierzytelniania wywołań do wystąpienia usługi ACR.

Podana nazwa aplikacji kontenera

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    containerAppName: 'my-test-container-app'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie my-test-container-app w nowej nazwie my-test-container-app-rggrupy zasobów .

Udostępniona grupa zasobów

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    resourceGroup: 'my-test-rg'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w grupie zasobów o nazwie my-test-rg. my-test-rg Jeśli grupa zasobów nie istnieje, zostanie utworzona w ramach tego zadania.

Podana nazwa aplikacji kontenera i grupa zasobów

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    containerAppName: 'my-test-container-app'
    resourceGroup: 'my-test-rg'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie my-test-container-app w grupie zasobów o nazwie my-test-rg. my-test-rg Jeśli grupa zasobów nie istnieje, zostanie utworzona w ramach tego zadania.

Udostępnione środowisko aplikacji kontenera

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    containerAppEnvironment: 'my-test-container-app-env'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w nowej grupie zasobów o nazwie <container-app-name>-rg z nowym środowiskiem aplikacji kontenera o nazwie my-test-container-app-env.

Udostępniony stos środowiska uruchomieniowego

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    runtimeStack: 'dotnetcore:7.0'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w nowej grupie zasobów o nazwie <container-app-name>-rg , w której obraz aplikacji możliwej do uruchomienia korzysta ze stosu środowiska uruchomieniowego platformy .NET 7.

Udostępniony plik Dockerfile

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    dockerfilePath: 'test.Dockerfile'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w nowej grupie zasobów o nazwie <container-app-name>-rg , w której utworzono obraz aplikacji możliwej do uruchomienia z pliku znajdującego test.Dockerfile się w podanym katalogu ścieżki źródłowej aplikacji.

Uwaga: w przypadku wartości podanych w pliku dockerfilePathnie należy uwzględniać żadnych prefiksów plików (np../test.Dockerfile należy przekazać jako tylko test.Dockerfile). Podane appSourcePath argumenty i dockerfilePath zostaną łączone wewnątrz zadania podrzędnego.

Obraz do skompilowania

steps:
- task: AzureContainerApps@1
  displayName: Build and deploy Container App
  inputs:
    connectedServiceNameARM: 'azure-subscription-service-connection'
    appSourcePath: '$(System.DefaultWorkingDirectory)'
    acrName: 'mytestacr'
    imageToBuild: 'mytestacr.azurecr.io/app:latest'

Spowoduje to utworzenie nowej aplikacji kontenera o nazwie ado-task-app-<build-id>-<build-number> w nowej grupie zasobów o nazwie <container-app-name>-rg , w której obraz skompilowany i wypchnięty do usługi ACR nosi nazwę mytestacr.azurecr.io/app:latest.

Wymagania

Wymaganie Opis
Typy potoków YAML, kompilacja klasyczna, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne w formie tabeli settable Dowolne
Wersja agenta 2.144.0 lub nowsza
Kategoria zadania Wdróż

Zobacz też