AzureFunctionAppContainer@1 - 컨테이너 v1 작업용 Azure Functions
Docker 컨테이너를 사용하여 함수 앱을 업데이트합니다.
구문론
# 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.
입력
앱 이름
string
; 필수 사항입니다.
컨테이너용 함수 앱의 이름입니다.
슬롯 또는 App Service Environment 배포
boolean
; 기본값은 false
입니다.
이 입력을 true
설정하여 기존 배포 슬롯 또는 Azure App Service Environment에 배포합니다. 작업에는 두 대상 모두에 대한 리소스 그룹 이름이 필요합니다. 배포 슬롯 옵션의 경우 기본값은 프로덕션 슬롯에 배포되거나 다른 기존 슬롯 이름을 지정할 수 있습니다. 배포 대상이 Azure App Service Environment인 경우 슬롯 이름을 프로덕션 그대로 두고 리소스 그룹 이름을 지정합니다.
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.
앱 설정
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
값으로 설정하여 오류를 해결합니다.
릴리스가 오랫동안 중단된 후 실패합니다.
이 문제는 App Service 계획의 용량 부족의 결과일 수 있습니다. 이 문제를 해결하려면 App Service 인스턴스를 확장하여 사용 가능한 CPU, RAM 및 디스크 공간을 늘리거나 다른 App Service 계획을 사용해 볼 수 있습니다.
5xx 오류 코드
5
Azure Function이 갑자기 작동 중지됨
마지막 배포 이후 1년이 지난 경우 Azure Functions의 작동이 갑자기 중지될 수 있습니다. "deploymentMethod"에서 "RunFromPackage"를 사용하여 배포하는 경우 만료 날짜가 1년인 SAS가 생성되고 애플리케이션 구성에서 "WEBSITE_RUN_FROM_PACKAGE" 값으로 설정됩니다. Azure Functions는 이 SAS를 사용하여 함수 실행을 위해 패키지 파일을 참조하므로 SAS가 만료된 경우 함수가 실행되지 않습니다. 이 문제를 해결하려면 다시 배포하여 만료 날짜가 1년인 SAS를 생성합니다.
서비스 연결을 구성하려면 어떻게 해야 하나요?
이 작업에는 Azure Resource Manager 서비스 연결필요합니다.
Application Insights를 사용하여 웹 작업 배포를 구성해야 합니까?
App Service에 배포하는 경우 Application Insights
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)