Azure Functions 배포 기술들

Azure Functions 프로젝트 코드를 Azure에 배포하기 위해 여러 가지 기술을 사용할 수 있습니다. 이 문서에서는 사용자에게 제공되는 배포 방법을 간략하게 설명하고 다양한 시나리오에서 가장 적합한 방법에 대한 권장 지침을 제공합니다. 또한 기본 배포 기술에 대한 포괄적인 목록과 주요 세부 정보를 제공합니다.

배포 방법

Azure 함수 앱에 코드를 게시하는 데 사용하는 배포 기술은 특정 요구 사항 및 개발 주기의 지점에 따라 달라집니다. 예를 들어 개발 및 테스트 중에 Visual Studio Code 같은 개발 도구에서 직접 배포할 수 있습니다. 앱이 프로덕션 환경에 있는 경우 유효성 검사 및 테스트를 포함할 수 있는 자동화된 게시 파이프라인을 사용하거나 소스 제어에서 계속 게시할 수 있습니다.

다음 표에서는 코드 프로젝트에 사용할 수 있는 배포 방법에 대해 설명합니다.

배포 유형 메서드 적합한 대상...
도구 기반 Azure CLI
Visual Studio Code publish
Visual Studio publish
핵심 도구 게시
개발 중 배포 및 기타 임시 배포. 로컬 개발 도구를 사용하여 주문형 코드를 배포합니다.
플랫폼에서 관리하는 배치 센터(CI/CD)
컨테이너 배포
소스 제어 또는 컨테이너 레지스트리에서 연속 배포(CI/CD) 호스팅 플랫폼이 배포를 관리합니다.
외부 파이프라인 Azure Pipelines
GitHub 작업
자동화된 배포의 일부로 실행해야 하는 유효성 검사, 테스트 및 기타 작업을 포함하는 프로덕션 파이프라인. 파이프라인은 배포를 관리합니다.

특정 시나리오에 가장 적합한 기술을 사용합니다. 지원되는 호스팅 계획의 경우, 많은 배포 방식이 zip 배포를 사용합니다.

배포 기술 가용성

또한 배포 방법은 함수 앱을 실행하는 호스팅 계획 및 운영 체제에 따라 달라집니다.

현재 Functions는 함수 앱을 호스팅하기 위한 5가지 옵션을 제공합니다.

플랜마다 동작이 다릅니다. 각 호스팅 계획 및 운영 체제에 모든 배포 기술을 사용할 수 있는 것은 아닙니다. 이 차트는 지원되는 배포 기술에 대한 정보를 제공합니다.

배포 기술 Flex 사용량 Consumption 탄력적 프리미엄 전용 컨테이너 앱
Flex Consumption 패키지 배포 지원됨 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음
ZIP 배포 지원되지 않음 지원됨 지원됨 지원됨 지원되지 않음
외부 패키지 URL1 지원되지 않음 지원됨 지원됨 지원됨 지원되지 않음
컨테이너 이미지 (Docker) 지원되지 않음 Linux-only Linux-only Linux-only 지원됨
원본 제어 지원되지 않음 Windows 전용 지원됨 지원됨 지원되지 않음
로컬 Git1 지원되지 않음 Windows 전용 지원됨 지원됨 지원되지 않음
FTPS1 지원되지 않음 Windows 전용 지원됨 지원됨 지원되지 않음
포털 내 편집2 지원되지 않음 지원됨 지원됨 지원됨 지원되지 않음
  1. 트리거를 수동으로 동기화해야 하는 배포 기술은 권장되지 않습니다.
  2. 코드가 포털 외부에서 함수 앱에 배포되면 포털 내 편집이 비활성화됩니다. 포털 내 편집에 대한 언어 지원 세부 정보를 비롯한 자세한 내용은 언어 지원 세부 정보를 참조하세요.

이 글 상단에서 호스팅 계획을 선택하여 기능 앱에 적용되는 배포 기술과 동작을 확인하세요.

주요 개념

일부 주요 개념은 Azure Functions 배포가 작동하는 방식을 이해하는 데 중요합니다.

호스팅 계획에 따른 앱 콘텐츠 저장

배포된 앱 콘텐츠의 위치는 호스팅 계획과 배포 기술에 따라 다릅니다:

호스팅 계획 앱 콘텐츠 스토리지
Flex 사용량 함수 앱에 맞게 구성하는 블롭 배포 컨테이너입니다.
소비, 탄력적 프리미엄, 그리고 전용 배포 기술에 따라 앱 파일 시스템, Azure Files 콘텐츠 공유, 또는 외부 패키지 URL 중 하나를 선택할 수 있습니다.
Azure Container Apps (Azure 컨테이너 애플리케이션) 컨테이너 레지스트리에 저장된 컨테이너 이미지입니다.

트리거 동기화

배포가 함수나 트리거 구성을 추가, 제거 또는 변경할 때, 함수 인프라는 함수 앱의 트리거 메타데이터를 업데이트해야 합니다. 이 동기화는 많은 배포 기술에서 자동으로 이루어집니다. 그러나 일부 경우에는 트리거를 수동으로 동기화해야 합니다.

이러한 배포 옵션을 사용할 때는 항상 트리거를 수동으로 동기화해야 합니다.

다음 방법 중 하나로 트리거를 수동으로 동기화할 수 있습니다.

  • Azure 포털에서 함수 앱을 다시 시작합니다. Functions 호스트는 애플리케이션이 시작된 후 백그라운드 트리거 동기화를 수행합니다.

  • 이 예제와 같이 az rest 명령을 사용하여 syncfunctiontriggers API를 호출하는 HTTP POST 요청을 보냅니다.

    az rest --method post --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/sites/<APP_NAME>/syncfunctiontriggers?api-version=2016-08-01
    

동기화 트리거 작업에 대해 다음 고려 사항을 염두에 두세요.

  • 동일한 외부 패키지 URL을 사용하여 업데이트된 버전의 배포 패키지를 배포할 때마다 함수 앱을 수동으로 다시 시작해야 합니다.
  • 소비 또는 탄력적 프리미엄 계획에서 실행되는 앱의 경우 다음 시나리오에서 트리거를 수동으로 동기화 해야 합니다.
    • 배포에서 ARM 템플릿 또는 Bicep 또는 Terraform 파일을 사용하여 리소스 관리자 기반 배포에 외부 패키지 URL을 사용하는 경우
    • 동일한 외부 패키지 URL을 사용하여 배포 패키지를 현재 위치에서 업데이트하는 경우
  • 기존 함수 앱에 네트워크 제한을 추가하는 경우 앱 설정에서 AzureWebJobsStorage 설정된 기본 호스트 스토리지 계정에 대한 연결을 보장해야 합니다. 자세한 내용은 Azure Functions 참조하세요.

원격 빌드

배포하는 동안 코드 프로젝트의 원격 빌드를 수행하도록 Azure Functions 요청할 수 있습니다. 이러한 시나리오에서는 로컬로 빌드하는 대신 원격 빌드를 요청합니다.

  • Windows 컴퓨터에서 개발한 Linux 기반 함수 앱에 앱을 배포하고 있습니다. 이 상황은 일반적으로 Python 앱 개발의 경우입니다. Windows 배포 패키지를 로컬로 빌드할 때 잘못된 라이브러리로 끝날 수 있습니다.
  • 프로젝트에 사용자 지정 패키지 인덱스가 종속되어 있습니다.
  • 배포 패키지의 크기를 줄이려고 합니다.

원격 빌드를 요청하는 방법은 앱이 Windows 또는 Linux에서 Azure 실행되는지 여부에 따라 달라집니다.

Windows에서 실행되는 모든 함수 앱은 동반 배포 사이트를 가지고 있습니다. 이 사이트는 Azure Functions 대한 배포 및 빌드 논리의 대부분을 처리합니다.

Windows 앱을 배포할 때 배포 프로세스는 dotnet restore(C#) 또는 npm install(JavaScript)와 같은 언어별 명령을 실행합니다.

배포 중에 원격 빌드를 사용하는 경우 다음 고려 사항이 적용됩니다.

  • 사용량 플랜에서는 Linux에서 실행되는 함수 앱에 대해 원격 빌드가 지원됩니다. 하지만 이들 앱의 배포 옵션은 동반 배포 사이트가 없기 때문에 제한적입니다.
  • Elastic Premium 플랜이나 Dedicated (App Service) 플랜에서 실행되는 리눅스 기반 함수 앱은 동반 배포 사이트가 있지만, Windows에 비해 제한적입니다.
  • 원격 빌드를 요청할 때는 WEBSITE_RUN_FROM_PACKAGE을(를) 설정하지 마세요. Linux Consumption, Elastic Premium, Dedicated 플랜 앱의 경우, Linux 탭에 설명된 배포 설정을 사용하여 원격 빌드를 활성화하세요. 배포 과정은 빌드 출력을 패키징하고 해당 패키지에서 실행되도록 앱을 구성할 수 있습니다.
  • 기능을 사용할 수 있게 되기 전에 앱을 만들 때 원격 빌드에 문제가 있을 수 있습니다(2019년 8월 1일). 이전 앱의 경우 새 함수 앱을 만들거나 az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME>을 실행하여 함수 앱을 업데이트합니다. 이 명령은 두 번 시도해야 성공할 수 있습니다.

원격 빌드

Flex Consumption의 경우, 배포를 시작할 때 원격 빌드 매개변수를 전달하여 원격 빌드를 요청합니다. 원격 빌드는 애플리케이션 설정으로 설정할 수 없습니다. Core Tools와 Visual Studio Code의 경우, Python 앱을 배포할 때 항상 원격 빌드가 요청됩니다. 자세한 내용은 배포를 참조 하세요.

앱 콘텐츠 스토리지

Flex Consumption은 현재 패키지를 구성된 배포 스토리지 컨테이너에 저장합니다. 기본적으로 이 컨테이너는 가 사용하는 AzureWebJobsStorage계정과 동일하지만, 다른 배포 스토리지 계정을 구성할 수 있습니다.

중요합니다

스토리지 계정은 중요한 앱 데이터를 저장하는 데 사용되며, 이러한 중요 앱 데이터에 애플리케이션 코드 자체가 포함되는 경우도 있습니다. 다른 앱 및 사용자의 액세스를 스토리지 계정으로 제한해야 합니다.

앱 콘텐츠 스토리지

배포 기술에 따라 앱 콘텐츠는 앱 파일 시스템, Azure Files 콘텐츠 공유, 또는 외부 패키지 URL에 저장할 수 있습니다. 다음 섹션에서 각 배포 기술별로 앱 콘텐츠가 저장되는 위치를 검토하세요.

중요합니다

스토리지 계정은 중요한 앱 데이터를 저장하는 데 사용되며, 이러한 중요 앱 데이터에 애플리케이션 코드 자체가 포함되는 경우도 있습니다. 다른 앱 및 사용자의 액세스를 스토리지 계정으로 제한해야 합니다.

보안 가상 네트워크

함수 앱에서 프라이빗 엔드포인트가 활성화되어 있고 공용 네트워크 접근이 비활성화되어 있으면, 배포 엔드포인트는 공개적으로 접근할 수 없습니다. Core Tools, Visual Studio Code, Azure CLI, GitHub Actions, Azure Pipelines 등 푸시 배포 도구들이 이 엔드포인트로 패키지를 전송합니다. 배포를 수행하는 기계, 러너 또는 에이전트는 프라이빗 배포 엔드포인트에 대해 네트워크 연결성과 DNS 해석 모두를 갖추고 있어야 합니다.

이러한 연결성을 다음과 같은 방식으로 제공할 수 있습니다:

배포 자원은 동일한 가상 네트워크에 있을 수도 있고, 피어드 가상 네트워크와 같이 프라이빗 엔드포인트와 라우팅 및 DNS 연결이 가능한 네트워크에 있을 수 있습니다.

Resource Manager 기반 패키지 배포는 패키지를 시작 클라이언트에서 배포 엔드포인트로 푸시하지 않습니다. 대신 배포 서비스는 배포 자원에 제공된 URL에서 패키지를 가져옵니다. 패키지 URL과 배포 저장소는 배포 서비스가 접근 가능해야 합니다. Flex Consumption에 대해서는 Bicep 또는 Azure Resource Manager 템플릿을 사용해 배포하기를 참조하세요.

가상 네트워크에서 함수 앱을 구성하는 방법에 대한 자세한 내용은 가상 네트워크에서 Azure Functions 구성하는 방법 참조하세요.

앱 콘텐츠 저장 및 네트워킹

Azure Functions on Azure Container Apps는 앱을 컨테이너 이미지로 배포합니다. 이미지는 컨테이너 레지스트리에 저장되며, 네트워킹은 컨테이너 앱 환경에서 관리됩니다. 자세한 내용은 Azure Functions on Azure Container Apps overview와 Networking in Azure Container Apps를 참조하세요.

호스팅 계획에 따른 배포 동작

선택한 호스팅 계획에 적용되는 배포 방법들입니다. 모든 플랜 간 기술을 비교하려면 배포 기술 가용성 표를 참조하세요.

Flex Consumption 패키지 배포

패키지 배포는 Flex Consumption 플랜에 적용되는 앱에 지원되는 유일한 코드 배포 기술입니다. 배포 프로세스는 애플리케이션의 배포 컨테이너에 실행 가능한 .zip 패키지를 저장하며, 함수 앱은 그 패키지에서 직접 실행됩니다.

Visual Studio Code 게시 기능을 사용하거나 Azure Functions 핵심 도구 또는 Azure CLI 사용하여 명령줄에서 배포합니다. Azure DevOps 작업과 GitHub Action도 Flex Consumption 앱을 감지할 때 올바른 패키지 배포 동작을 선택합니다.

Flex Consumption 앱을 만들 때 배포 스토리지(Blob) 컨테이너와 해당 컨테이너에 대한 인증 방법을 지정해야 합니다. 기본적으로 AzureWebJobsStorage 연결과 동일한 스토리지 계정이 사용되며 연결 문자열 인증 방법으로 사용됩니다. 따라서 배포 설정은 애플리케이션 설정 없이 앱 만들기 시간 동안 구성됩니다.

사용 시기: 모든 Flex Consumption 코드 배포에 패키지 배포를 사용하세요. 다른 코드 배포 기술은 지원되지 않습니다.

앱 콘텐츠가 저장되는 위치: Flex 사용 함수 앱을 만들 때 스토리지 컨테이너를 지정합니다. 배포 서비스는 처리된 실행 준비가 완료된 패키지를 이 컨테이너에 저장합니다. 푸시 배포 도구는 먼저 소스 패키지를 앱의 배포 엔드포인트로 전송합니다; 배포 컨테이너에 직접 업로드하지 않습니다. 저장소 위치를 변경하려면 Azure 포털에서 배포 설정 페이지를 열거나 Azure CLI를 사용하세요.

기본 플랫폼 API는 때때로 .로 OneDeploy식별되기도 합니다. 코드형 인프라 정의는 이 구현을 문자 그대로의 /onedeploy 리소스 이름을 통해 노출합니다. 지원되는 개발 도구나 CI/CD 제공자를 사용하여 배포할 때 이 API를 선택하거나 구성할 필요가 없습니다.

팁 (조언)

Flex Consumption Deployment 진단 도구는 Azure 포털에서 사용할 수 있습니다. Flex Consumption 앱을 열고 진단 및 문제 해결을 선택하고 Flex Consumption Deployment을 검색합니다. 이 도구는 배포 기록, 패키지 상태 및 문제 해결 권장 사항을 포함하여 배포에 대한 자세한 정보를 표시합니다.

ZIP 배포

ZIP 배포는 Consumption, Elastic Premium, Dedicated (App Service) 플랜의 기능 앱에 대한 기본 및 권장 배포 기술입니다. 최종 결과는 함수 앱이 실행되는 즉시 실행 가능한 .zip 패키지입니다. 플랫폼이 앱 콘텐츠를 원격으로 빌드하고 저장해야 한다는 점에서 외부 패키지 URL 과 다릅니다.

사용 방법: 선호하는 클라이언트 도구인 Visual Studio Code, Visual Studio를 사용하거나 명령줄에서 Azure Functions Core Tools 또는 Azure CLI를 사용해 배포할 수 있습니다. Azure DevOps 작업과 GitHub Action도 ZIP 배포를 사용합니다.

ZIP 배포를 사용할 때는 앱을 패키지에서 실행하도록 설정할 수 있습니다. 패키지에서 실행하려면 WEBSITE_RUN_FROM_PACKAGE 애플리케이션 설정 값을 1로 설정합니다. ZIP 배포를 권장합니다. 이 모드는 애플리케이션의 로딩 속도를 높여주고, Visual Studio Code, Visual Studio, Azure CLI 기본 설정입니다.

사용 시기: ZIP 배포는 Windows Consumption, Windows 및 Linux Elastic Premium, Windows and Linux App Service(전용) 플랜에서 기능 앱의 기본 및 권장 배포 기술입니다.

앱 콘텐츠가 저장되는 곳: ZIP 배포의 앱 콘텐츠는 기본적으로 파일 시스템에 저장되며, Azure가 함수 앱을 생성할 때 지정한 스토리지 계정의 Azure Files로 이를 백업할 수 있습니다. Linux 사용 환경에서 앱 콘텐츠는 AzureWebJobsStorage 앱 설정에 지정된 스토리지 계정의 Blob 스토리지에 저장되며, 앱 WEBSITE_RUN_FROM_PACKAGE 설정은 해당 Blob URL 값을 갖습니다.

외부 패키지 URL

배포 방식을 수동으로 제어하고 싶을 때는 외부 패키지 URL을 사용하세요. 구축한 앱 콘텐츠를 담은 실행 가능한 .zip 패키지를 블롭 저장소에 업로드하고, 이 외부 URL을 함수 앱의 애플리케이션 설정으로 참조하는 책임이 있습니다. 앱이 재시작할 때마다 패키지를 가져오고, 마운트한 뒤 실행합니다.

사용 방법:WEBSITE_RUN_FROM_PACKAGE를 애플리케이션 설정에 추가합니다. 이 설정의 값은 앱을 실행하려는 특정 패키지의 위치를 가리키는 Blob URL이어야 합니다. 포털에서 설정을 추가하거나 Azure CLI를 사용하여 설정을 추가할 수 있습니다.

Azure Blob Storage를 사용하면 함수 앱이 관리 신원 기반 연결이나 공유 액세스 서명(SAS)을 통해 컨테이너에 접근할 수 있습니다. 선택하는 옵션은 WEBSITE_RUN_FROM_PACKAGE 값으로 사용할 URL의 종류를 결정합니다. 관리 ID가 전체 보안에 권장되며, 이는 SAS 토큰이 만료되고 수동으로 유지 관리되어야 하기 때문입니다.

함수 앱이 참조하는 패키지 파일을 배포할 때마다 초기 배포를 포함하여 트리거를 수동으로 동기화해야 합니다. URL 자체가 아닌 패키지 파일의 콘텐츠를 변경하는 경우 트리거를 동기화하려면 함수 앱도 다시 시작해야 합니다. 구성 단계에 대해서는 '외부 패키지 URL에서 실행'을 참조하세요.

사용 시기:원격 빌드를 수행하지 않으려는 경우 외부 패키지 URL은 Linux 사용 계획에서 실행되는 앱에 대해 유일하게 지원되는 배포 방법입니다. 이 방법은 Azure Files 없이 앱을 생성할 때 권장되는 배포 기술이기도 합니다. Linux에서 실행되는 확장성 있는 앱의 경우 대신 Flex 사용 계획 호스팅을 고려해야 합니다.

앱 콘텐츠가 저장되는 위치: Blob Storage에 앱 콘텐츠를 업로드할 책임이 있습니다. 어떤 블롭 스토리지 계정이든 사용할 수 있지만, Azure Blob Storage를 추천합니다.

Docker 컨테이너

Linux 컨테이너에서 실행되는 함수 앱을 배포할 수 있습니다.

사용 방법: Linux 컨테이너에서 함수 만들기 Azure Functions 또는 다른 컨테이너 호스트의 Premium 또는 Dedicated 계획에 컨테이너를 배포합니다. Azure Functions Core Tools를 사용하여 컨테이너화된 함수 앱을 빌드하는 데 사용하는 프로젝트에 대한 사용자 지정된 Dockerfile을 만듭니다. 다음 배포에서 컨테이너를 사용할 수 있습니다.

사용 시기: 함수 앱이 실행되고 컨테이너가 호스트되는 Linux 환경을 보다 강력하게 제어해야 하는 경우 Docker 컨테이너 옵션을 사용합니다. 이 배포 메커니즘은 Linux에서 실행되는 Functions에만 사용할 수 있습니다.

앱 콘텐츠가 저장되는 위치: 이미지의 일부로 지정된 컨테이너 레지스트리에 앱 콘텐츠를 저장합니다.

원본 제어

함수 앱과 소스 코드 리포지토리 간의 연속 통합을 사용하도록 설정할 수 있습니다. 소스 제어를 사용하도록 설정하면 연결된 소스 리포지토리의 코드 업데이트가 리포지토리의 최신 코드 배포를 트리거합니다. 자세한 내용은 Azure Functions의 연속 배포를 참조하십시오.

사용 방법: 소스 제어에서 게시를 설정하는 가장 쉬운 방법은 포털의 Functions 영역에 있는 배포 센터를 이용하는 것입니다. 자세한 내용은 Azure Functions에 대한 연속 배포를 참조하세요.

사용 시기: 소스 제어를 사용하는 것은 해당 함수 앱에서 공동으로 작업하는 팀을 위한 모범 사례입니다. 소스 제어는 보다 정교한 배포 파이프라인을 가능하게 하는 적절한 배포 옵션입니다. 일반적으로 스테이징 슬롯에서 소스 제어를 사용하도록 설정하면 리포지토리에서 업데이트의 유효성을 검사한 후 프로덕션으로 전환할 수 있습니다. 자세한 내용은 Azure Functions 배포 슬롯 참조하세요.

앱 콘텐츠가 저장되는 위치: 소스 제어 시스템은 앱 콘텐츠를 저장합니다. 앱 파일 시스템에는 로컬에서 복제 및 빌드된 앱 콘텐츠가 저장되며, 이는 함수 앱 생성 시 지정된 스토리지 계정의 Azure Files에 의해 백업될 수 있습니다.

로컬 Git

로컬 Git을 활용하면 로컬 머신의 코드를 Azure Functions로 직접 푸시할 수 있습니다.

사용 방법:Azure App Service에 로컬 Git 배포하기 지침을 따르십시오.

사용 시기: 오류 가능성을 줄이려면 트리거를 수동으로 동기화하는 추가 단계가 필요한 배포 방법을 사용하지 마십시오. 가능한 경우 zip 배포를 사용합니다.

앱 콘텐츠가 저장되는 곳: 파일 시스템은 앱 콘텐츠를 저장합니다. 파일 시스템은 함수 앱을 생성할 때 지정한 저장 계정의 Azure Files에 의해 백업될 수 있습니다.

FTPS

FTPS를 사용해 Azure Functions로 직접 파일을 전송할 수는 있지만, 이 배포 방식은 사용하지 마세요. FTPS를 사용할 계획이 없다면 꺼두세요. Azure 포털에서 방법을 알아보려면 Enforce FTPS 참조하세요.

사용하는 방법:FTPS 배포 설정 의 지침에 따라 FTPS를 사용하여 함수 앱에 배포하는 데 사용할 수 있는 URL 및 자격 증명을 가져옵니다.

사용 시기: 오류 가능성을 줄이려면 트리거를 수동으로 동기화하는 추가 단계가 필요한 배포 방법을 사용하지 마십시오. 가능한 경우 zip 배포를 사용합니다.

앱 콘텐츠가 저장되는 위치: 앱 콘텐츠는 파일 시스템에 저장됩니다. 앱의 파일 시스템이 기본 호스트 스토리지 계정의 Azure Files 의해 지원되면 FTP/FTPS 배포가 실패합니다. FTP/FTPS가 FTP 제한 사항 때문에 Azure Files를 탑재된 스토리지로 사용할 수 없습니다.

포털 내 편집

Portal 기반 편집기에서 함수 앱에 있는 파일을 직접 편집할 수 있습니다(기본적으로 변경 내용을 저장할 때마다 배포).

사용 방법:Azure 포털에서 함수를 편집하려면, 포털에서 함수를 먼저 생성해야 합니다. 단일 데이터 소스(single source of truth)를 보존하기 위해 다른 배포 방법을 사용하면 함수가 읽기 전용으로 설정되고 계속해서 포털을 편집할 수 없게 됩니다. Azure 포털에서 파일을 편집할 수 있는 상태로 돌아가려면 수동으로 편집 모드를 Read/Write 다시 설정하고 배포 관련 애플리케이션 설정(예: WEBSITE_RUN_FROM_PACKAGE)을 제거할 수 있습니다.

사용시기: 포털은 Azure Functions를 시작하는 데 좋은 방법입니다. Azure 포털의 개발 제한으로 인해 고급 개발 작업을 위해 다음 클라이언트 도구 중 하나를 사용해야 합니다.

앱 콘텐츠가 저장되는 위치: 앱 콘텐츠는 파일 시스템에 저장되며, 함수 앱을 만들 때 지정한 스토리지 계정의 Azure Files에 의해 지원될 수 있습니다.

컨테이너 이미지 배포

Azure Functions on Azure Container Apps는 코드를 컨테이너 이미지로 배포합니다. 관리 컨테이너 앱 경험을 통해 코드 프로젝트에서 배포할 수 있고, 이미지 내용을 제어해야 할 때는 맞춤형 이미지를 배포할 수 있습니다. 자세한 내용은 'Code 사용으로 Azure Container Apps에서 함수 앱 생성 및 Azure Functions on Azure Container Apps 개요』를 참조하세요.

배포 동작

함수 앱 코드에 업데이트를 배포할 때, 배포 동작은 호스팅 계획에 따라 달라집니다.

현재 실행 중인 함수들은 새 코드를 배포하면 멈춥니다. 배포가 완료되면 새 코드가 로드되어 요청을 처리하기 시작합니다. 이러한 강압적 종료 행동을 재창조 전략이라고 합니다. 거의 다운타임이 없는 배포를 위해서는 배치 슬롯을 활용하세요.

Azure Functions 성능 및 안정성을 개선하여 검토함으로써 상태 비저장 및 방어적 함수를 작성하는 방법에 대해 배우십시오.

기본 동작은 배포 중에 실행 중인 함수를 중단하는 재생성 전략을 사용합니다. Flex Consumption은 두 가지 사이트 업데이트 전략을 지원합니다. 다운타임 없는 배포를 위해 롤링 업데이트를 구성할 수 있습니다.

Azure Container Apps는 revisions를 사용하여 애플리케이션 업데이트를 관리합니다. 새로운 수정판이 트래픽을 받는 방식을 제어하는 방법에 대한 자세한 내용은 Azure Container Apps의 업데이트 및 배포 변경 사항을 참조하세요.

배포 슬롯

Flex Consumption은 배치 슬롯을 지원하지 않습니다. 무시간 다운타임 배포를 위해서는 롤링 업데이트를 구성하세요.

배포 슬롯

Azure 함수 앱을 배포하는 경우 프로덕션에 직접 배포하는 대신 별도의 배포 슬롯에 배포할 수 있습니다. 지속적인 배포를 구성하는 데 권장되는 방법은 배포 슬롯에 배포한 다음 확인 후 프로덕션으로 교환하는 것입니다.

슬롯에 배포하는 방법은 사용하는 특정 배포 도구에 따라 다릅니다. 예를 들어 Azure Functions Core Tools를 사용할 때는 --slot 명령에 대해 특정 슬롯의 이름을 지정하려면 func azure functionapp publish 옵션을 포함하세요.

배포 슬롯에 대한 자세한 내용은 Azure Functions 배포 슬롯 설명서를 참조하세요.

다음 단계

함수 앱을 배포하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.