AzureFunctionAppContainer@1 - 컨테이너 v1 작업에 대한 Azure Functions

Docker 컨테이너를 사용하여 함수 앱을 업데이트합니다.

Docker 컨테이너를 사용하여 Function Apps를 업데이트합니다.

Syntax

# Azure Functions for container v1
# Update a function app with a Docker container.
- task: AzureFunctionAppContainer@1
  inputs:
    azureSubscription: # string. Required. Azure subscription. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    imageName: # string. Required. Image name. 
    #containerCommand: # string. Startup command. 
  # Application and Configuration Settings
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings.
# Azure Function for container v1
# Update Function Apps with Docker containers.
- task: AzureFunctionAppContainer@1
  inputs:
    azureSubscription: # string. Required. Azure subscription. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    imageName: # string. Required. Image name. 
    #containerCommand: # string. Startup command. 
  # Application and Configuration Settings
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings.

입력

azureSubscription - Azure 구독
string. 필수 요소.

배포에 대한 Azure Resource Manager 구독을 선택합니다.


appName - 앱 이름
string. 필수 요소.

컨테이너용 함수 앱의 이름입니다.


deployToSlotOrASE - 슬롯 또는 App Service Environment 배포
boolean. 기본값은 false입니다.

기존 배포 슬롯 또는 Azure App Service 환경에 배포하려면 이 입력 true 을 로 설정합니다. 작업에는 두 대상 모두에 대한 리소스 그룹 이름이 필요합니다. 배포 슬롯 옵션의 경우 기본값이 프로덕션 슬롯에 배포되거나 다른 기존 슬롯 이름을 지정할 수 있습니다. 배포 대상이 Azure App Service 환경인 경우 슬롯 이름을 프로덕션으로 두고 리소스 그룹 이름을 지정합니다.


resourceGroupName - 리소스 그룹
string. 필요한 경우 deployToSlotOrASE = true입니다.

컨테이너용 함수 앱이 포함된 리소스 그룹의 이름입니다.


slotName - 슬롯
string. 필요한 경우 deployToSlotOrASE = true입니다. 기본값은 production입니다.

프로덕션 슬롯을 제외한 기존 슬롯을 입력하거나 선택합니다.


imageName - 이미지 이름
string. 필수 요소.

특정 레지스트리 또는 네임스페이스에 대한 전역적으로 고유한 최상위 도메인 이름입니다.

참고: 정규화된 이미지 이름은 형식 <registry or namespace> <repository> <tag>입니다. 예: myregistry.azurecr.io/nginx:latest.


containerCommand - 시작 명령
string.

배포 후 실행되는 시작 명령입니다. 예를 들어 dotnet rundotnet filename.dll.


appSettings - 앱 설정
string.

구문을 -key value 사용하여 애플리케이션 설정을 입력합니다(예: -Port 5000-RequestTimeout 5000-WEBSITE_TIME_ZONE). 큰따옴표로 공백이 포함된 값을 묶습니다(예: "Eastern Standard Time").


configurationStrings - 구성 설정
string.

구문을 -key value 사용하여 구성 문자열을 입력합니다(예: -phpVersion 5.6-linuxFxVersion: node|6.11). 큰따옴표로 공백이 포함된 값을 묶습니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

이 작업은 다운스트림 단계, 작업 및 단계에서 사용할 수 있는 다음 출력 변수를 정의합니다.

AppServiceApplicationUrl
선택한 App Service 애플리케이션 URL입니다.

설명

이 작업을 사용하여 사용자 지정 이미지를 사용하여 Linux에 Azure Function을 배포합니다.

오류: Azure에 대한 액세스 토큰을 가져올 수 없습니다. 사용된 서비스 주체가 유효하고 만료되지 않았는지 확인합니다.

작업은 서비스 연결에서 서비스 주체를 사용하여 Azure로 인증합니다. 서비스 주체가 만료되었거나 App Service 대한 권한이 없는 경우 이 오류와 함께 작업이 실패합니다. 사용된 서비스 주체의 유효성을 검사하고 앱 등록에 표시되는지 확인합니다. 자세한 내용은 역할 기반 액세스 제어를 사용하여 Azure 구독 리소스에 대한 액세스 관리를 참조하세요. 이 블로그 게시물에 는 서비스 주체 인증 사용에 대한 자세한 정보도 포함되어 있습니다.

SSL 오류

App Service 인증서를 사용하려면 신뢰할 수 있는 인증 기관에서 인증서에 서명해야 합니다. 웹앱에서 인증서 유효성 검사 오류가 발생한 경우 자체 서명된 인증서를 사용하고 있을 수도 있습니다. 라는 VSTS_ARM_REST_IGNORE_SSL_ERRORS 변수를 빌드 또는 릴리스 파이프라인의 값 true 으로 설정하여 오류를 resolve.

릴리스가 오랜 시간 동안 중단된 후 실패합니다.

이 문제는 App Service 계획의 용량 부족의 결과일 수 있습니다. 이 문제를 resolve 위해 App Service instance 확장하여 사용 가능한 CPU, RAM 및 디스크 공간을 늘리거나 다른 App Service 계획을 사용해 볼 수 있습니다.

5xx 오류 코드

5xx 오류가 표시되는 경우 Azure 서비스의 상태 검사.

Azure Function이 갑자기 작동 중지됨

마지막 배포 이후 1년이 넘은 경우 Azure Functions 갑자기 작동이 중지될 수 있습니다. "deploymentMethod"에서 "RunFromPackage"를 사용하여 배포하는 경우 만료 날짜가 1년인 SAS가 생성되고 애플리케이션 구성에서 "WEBSITE_RUN_FROM_PACKAGE" 값으로 설정됩니다. Azure Functions 이 SAS를 사용하여 함수 실행을 위해 패키지 파일을 참조하므로 SAS가 만료된 경우 함수가 실행되지 않습니다. 이 문제를 resolve 위해 다시 배포하여 만료 날짜가 1년인 SAS를 생성합니다.

서비스 연결을 구성하려면 어떻게 해야 하나요?

이 작업에는 Azure Resource Manager 서비스 연결이 필요합니다.

Application Insights를 사용하여 웹 작업 배포를 구성해야 하나요?

App Service 배포할 때 Application Insights를 구성하고 를 사용하도록 설정한 Remove additional files at destination경우 을 사용하도록 설정Exclude files from the App_Data folder해야 합니다. 이 옵션을 사용하도록 설정하면 Application Insights 확장이 안전한 상태로 유지됩니다. Application Insights 연속 WebJob이 App_Data 폴더에 설치되어 있으므로 이 단계가 필요합니다.

App Service 배포하는 동안 프록시 뒤에 있는 경우 에이전트를 구성하려면 어떻게 해야 하나요?

자체 호스팅 에이전트에 웹 프록시가 필요한 경우 구성 중에 에이전트에 프록시에 대해 알릴 수 있습니다. 이렇게 하면 에이전트가 Azure Pipelines에 연결하거나 프록시를 통해 Azure DevOps Server 수 있습니다. 웹 프록시 뒤에서 자체 호스팅 에이전트를 실행하는 방법에 대해 자세히 알아봅니다.

예제

이 예제에서는 컨테이너를 사용하여 Linux에 Azure Functions 배포합니다.


variables:
  imageName: contoso.azurecr.io/azurefunctions-containers:$(build.buildId)
  azureSubscription: Contoso
  # To ignore SSL error uncomment the following variable
  # VSTS_ARM_REST_IGNORE_SSL_ERRORS: true

steps:
- task: AzureFunctionAppContainer@1
  displayName: Azure Function App on Container deploy
  inputs:
    azureSubscription: $(azureSubscription)
    appName: functionappcontainers
    imageName: $(imageName)

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 2.104.1 이상
작업 범주 배포