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.
입력
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 run
dotnet 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 이상 |
작업 범주 | 배포 |