이 글에서는 실행 가능한 .zip 배포 패키지를 만들고, 패키지를 Azure에 배포하며, 함수 앱을 패키지에서 직접 실행하도록 설정하는 방법을 설명합니다. Azure Functions Core Tools, Azure CLI, 또는 배포 REST API를 사용하여 배포할 수 있습니다.
패키지 기반 배포는 코드에서 실행되는 함수형 앱의 기본 방식입니다. 배포 기술과 패키지 구성은 호스팅 계획에 따라 다릅니다. 이 글 상단에서 호스팅 계획을 선택하세요.
Azure Functions는 Azure App Service가 제공하는 모든 지속적 배포 및 통합 옵션을 갖추고 있습니다. 자세한 내용은 Azure Functions에 대한 연속 배포를 참조하세요.
호스팅 계획에 따른 패키지 배포
다음 표는 각 호스팅 계획의 배포 과정과 패키지 구성을 요약합니다:
| 호스팅 계획 | 배포 프로세스 | 패키지 구성 |
|---|---|---|
| 유연 소비 계획 | 관리형 패키지 배포 | 기본적으로 배포된 패키지에서 실행됩니다.
WEBSITE_RUN_FROM_PACKAGE를 설정하지 마십시오. |
| 프레미스 플랜 | ZIP 배포 | 배포된 패키지에서 실행되도록 설정 WEBSITE_RUN_FROM_PACKAGE1 하세요. |
| 전용(App Service) 플랜 | ZIP 배포 | 배포된 패키지에서 실행되도록 설정 WEBSITE_RUN_FROM_PACKAGE1 하세요. |
| Windows 사용 계획 | ZIP 배포 | 배포된 패키지에서 실행되도록 설정 WEBSITE_RUN_FROM_PACKAGE1 하세요. |
| 리눅스에서의 소비 계획 | 원격 빌드 또는 외부 패키지 URL | 로컬에서 빌드한 패키지에는 외부 패키지 URL을 사용하세요. |
| Azure Container Apps (Azure 컨테이너 애플리케이션) | 컨테이너 이미지 배포 | 패키지 기반 코드 배포는 적용되지 않습니다. |
메모
이 글의 내용은 현재 선택된 호스팅 계획과는 관련이 없습니다. 다른 요금제를 선택하려면 이 글 상단의 선택기를 사용하세요. 모든 호스팅 플랜 비교는 Azure Functions 호스팅 옵션을 참조하세요.
Azure Container Apps에 호스팅된 함수 앱은 .zip 패키지가 아닌 컨테이너 이미지로 배포됩니다. 이미지 기반 함수 앱을 생성하고 배포하려면 코드를 사용해 Azure Container Apps에서 함수 앱 만들기를 참조하세요.
배포 패키지 생성
대부분의 경우, 배포 패키지를 직접 만들 필요는 없습니다. 이러한 도구 기반 배포 방법은 퍼블리싱 프로세스의 일부로 패키지를 생성합니다:
- The Azure Functions Core Tools
func azure functionapp publishcommand. - Visual Studio Code 퍼블리싱.
- Visual Studio 퍼블리싱.
- GitHub Actions 배포는 설정된 프로젝트 경로를 패키징합니다.
배포Azure Pipelines 파이프라인 빌드 단계에서 .zip 아카이브를 생성하고 배포 작업에 전달 AzureFunctionApp 합니다.
즉시 실행 가능한 배포 패키지를 직접 작업해야 할 때는 func pack. 예를 들어, 배포할 때 외부 패키지 URL을 사용해 직접 패키지를 생성하세요.
.zip 아카이브를 수동으로 만들 수도 있습니다. 수동으로 아카이브를 생성할 때는 이 패키지 구조 요구사항을 따르세요.
배포 패키지 요구사항
배포하는 zip 아카이브에는 함수 앱을 실행하는 데 필요한 모든 파일이 포함되어 있어야 합니다. 기본 제공 .zip 압축 기능 또는 Microsoft 이외의 도구를 사용하여 Functions 프로젝트 폴더의 콘텐츠에서 zip 보관 파일을 수동으로 만들 수 있습니다.
압축을 푼 폴더의 루트에 host.json 파일이 포함되어 있어야 합니다. 함수 앱에 대해 선택한 언어 스택은 다른 요구 사항을 만듭니다.
중요합니다
배포를 위해 컴파일된 출력을 생성하는 언어의 경우, 전체 프로젝트 폴더가 아니라 게시할 출력 폴더의 내용만 압축해야 합니다. Functions가 zip 아카이브의 내용을 추출할 때, host.json 파일은 패키지의 루트에 있어야 합니다.
zip 배포 프로세스는 .zip 아카이브의 파일과 폴더를 디렉터리 내에서 wwwroot 압축 해제합니다. 아카이브를 만들 때 부모 디렉터리를 포함하면, 시스템은 기대 wwwroot하는 파일을 찾지 못합니다.
패키지 배포
Flex Consumption은 패키지 배포 를 사용하여 앱의 배포 저장 컨테이너에 즉시 실행 가능한 패키지를 저장합니다. 앱은 이 패키지에서 직접 실행됩니다. 앱 설정을 하지 WEBSITE_RUN_FROM_PACKAGE 마세요.
Core Tools, Visual Studio Code, 또는 Azure CLI를 사용하여 패키지를 배포하세요. 이 도구들은 Flex Consumption 앱에 적합한 패키지 배포 동작을 자동으로 선택합니다.
이 도구들은 패키지를 앱의 배포 엔드포인트로 전송하여 푸시 배포를 수행합니다. Flex Consumption의 경우, 이 클라이언트들은 패키지 /api/publish 를 앱 scm 호스트에 전송합니다. 배포 엔드포인트가 프라이빗 엔드포인트를 통해서만 접근 가능할 경우, 배포를 수행하는 컴퓨터, 러너 또는 에이전트는 프라이빗 배포 엔드포인트에 대한 네트워크 연결과 DNS 해석이 필요합니다. 배포 서비스는 처리된 패키지를 구성된 배포 컨테이너에 저장합니다; 패키지를 이 컨테이너에 직접 업로드해도 배포되지 않습니다. 시작 클라이언트에서 배포 엔드포인트로 푸시하지 않고 배포하려면, 배포 서비스가 접근할 수 있는 패키지 URL을 가진 Bicep 또는 ARM 템플릿 배포를 사용하세요.
Azure CLI를 사용하여 배포
패키지를 배포하는 명령어 az functionapp deployment source config-zip 를 사용하세요:
az functionapp deployment source config-zip --resource-group <RESOURCE_GROUP> \
--name <APP_NAME> --src <ZIP_FILE_PATH>
소스 프로젝트가 원격 빌드를 요구할 때 추가 --build-remote true 하세요. 이미 실행 준비가 된 패키지 func pack (예: Go 배포 패키지)에 대해 원격 빌드를 요청하지 마세요.
배포 스토리지를 구성하거나 이전 배포를 복구하려면 Flex Consumption 플랜의 기능 앱 생성 및 관리를 참조하세요.
패키지 배포
Premium, Dedicated, Consumption 플랜 앱은 zip 배포 API를 사용합니다. 배포 서비스는 다음과 같은 작업을 수행합니다:
- 이전 배포에서 남은 파일을 삭제하세요.
- 배포 스크립트와 기타 배포 맞춤화를 실행하세요.
- 배포 로그를 작성하세요.
- 동기화 기능 트리거.
중요합니다
zip 배포에서는 이전 배포의 파일들이 해당 배포에 포함되어 있을 때 삭제되거나 업데이트됩니다. 배포 과정은 이전 배포에 포함되지 않았던 다른 파일과 디렉터리를 함수 앱에 유지합니다. 구현 세부 사항은 zip 배포 참고 자료를 참조하세요.
Azure CLI를 사용하여 배포
Azure CLI를 사용해 push 배포를 트리거하세요.
az functionapp deployment source config-zip 명령을 사용하여 .zip 파일을 함수 앱에 푸시 배포합니다. 이 명령을 사용하려면 Azure CLI 버전 2.0.21 이상을 사용해야 합니다. 사용 중인 Azure CLI 버전을 확인하려면 이 명령을 사용합니다 az --version .
다음 명령에서 <zip_file_path> 자리 표시자를 .zip 파일이 위치한 경로로 바꿉니다. 또한, <app_name>을 함수 앱의 고유 이름으로, <resource_group>를 리소스 그룹 이름으로 바꿉니다.
az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>
이 명령어는 .zip 파일에서 Azure 함수 앱으로 프로젝트 파일을 배포하고 앱을 재시작합니다.
로컬 컴퓨터에서 Azure CLI를 사용하는 경우, <zip_file_path>은 컴퓨터에 있는 .zip 파일의 경로입니다.
Azure Cloud Shell에서 Azure CLI를 실행할 수도 있습니다. Cloud Shell을 사용하는 경우, 먼저 배포용 .zip 파일을 Cloud Shell과 연결된 Azure Files 계정에 업로드해야 합니다. 이 경우, <zip_file_path>은 Cloud Shell 계정이 사용하는 저장 위치입니다. 자세한 내용은 Azure Cloud Shell에서 파일 유지를 참조하십시오.
REST API를 사용하여 ZIP 파일 배포
배포 서비스 REST API를 사용하여 .zip 파일을 Azure의 앱에 배포할 수 있습니다. 배포하려면 https://<app_name>.scm.azurewebsites.net/api/zipdeploy에 POST 요청을 전송합니다. POST 요청에는 .zip 파일이 메시지 본문에 포함되어야 합니다. 앱의 배포 자격 증명은 HTTP BASIC 인증을 사용하여 요청에 제공됩니다. 자세한 내용은 .zip 푸시 배포 참조를 참조하십시오.
HTTP BASIC 인증을 사용하려면 App Service 배포 자격 증명이 필요합니다. 배포 자격 증명을 설정하는 방법은 사용자 수준 자격 증명 설정 및 재설정을 참조하십시오.
cURL 사용
다음 예제는 cURL 도구를 사용하여 .zip 파일을 배포합니다.
<deployment_user>, <zip_file_path> 및 <app_name> 자리 표시자를 바꿉니다. cURL에서 프롬프트가 표시되면 암호를 입력합니다.
curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy
이 요청은 업로드된 .zip 파일에서 푸시 배포를 시작합니다. 다음 cURL 예제와 같이 https://<app_name>.scm.azurewebsites.net/api/deployments 엔드포인트를 사용하여 현재 및 과거 배포를 검토할 수 있습니다. 다시 한 번, <app_name>을 앱 이름으로, <deployment_user>를 배포 자격 증명의 사용자 이름으로 바꿉니다.
curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments
비동기 zip 배포
동기적으로 배포하는 동안 연결 시간 제한과 관련된 오류가 발생할 수 있습니다. URL에 ?isAsync=true를 추가하여 비동기적으로 배포합니다. zip 파일이 폴링 가능한 배포 상태 URL을 Location 가리키는 헤더와 함께 업로드되는 즉시 응답을 받습니다. 헤더에 Location 제공된 URL을 폴링할 때 프로세스가 진행되는 동안 HTTP 202(수락됨) 응답과 보관이 확장되고 배포가 성공적으로 완료되면 HTTP 200(OK) 응답을 받게 됩니다.
Microsoft Entra 인증
.zip 배포에 HTTP BASIC 인증을 사용하는 대신 Microsoft Entra ID를 사용할 수도 있습니다. SCM 사이트에 대해 HTTP BASIC 인증을 사용하지 않도록 설정한 경우 Microsoft Entra ID가 필요할 수 있습니다.
배포를 수행하는 사용자 또는 서비스 주체에 대한 유효한 Microsoft Entra 액세스 토큰이 필요합니다. Azure CLI의 az account get-access-token 명령을 사용하여 액세스 토큰을 검색할 수 있습니다. 액세스 토큰은 HTTP POST 요청의 인증 헤더에 사용됩니다.
curl -X POST \
--data-binary "@<zip_file_path>" \
-H "Authorization: Bearer <access_token>" \
"https://<app_name>.scm.azurewebsites.net/api/zipdeploy"
PowerShell을 사용하여
다음 예제에서는 Publish-AzWebapp을 사용하여 .zip 파일을 업로드합니다.
<group-name>, <app-name> 및 <zip-file-path> 자리 표시자를 바꿉니다.
Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>
이 요청은 업로드된 .zip 파일에서 푸시 배포를 시작합니다.
현재 및 과거 배포를 검토하려면 다음 명령을 실행합니다. 다시 <deployment-user>, <deployment-password> 및 <app-name> 자리 표시자를 바꿉니다.
$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET
Bicep 또는 Azure Resource Manager 템플릿을 사용하여 배포하세요
패키지를 Bicep 또는 Azure Resource Manager(ARM) 템플릿 배포의 일부로 Flex Consumption 앱에 배포할 수 있습니다. 확장 기능을 사용하고 /onedeploy 속성 내에 packageUri 원격 패키지 URL을 제공하는 리소스를 Microsoft.Web/sites/extensions 정의하세요.
패키지 파일 이름을 released-package.zip해야 합니다. Functions 호스트는 원격 패키지 URL과 배포 저장 컨테이너 모두에 접근할 수 있어야 합니다. 패키지를 배포 컨테이너에 직접 업로드한다고 해서 배포되는 것은 아닙니다.
Bicep 및 ARM 템플릿 예시는 'Flex Consumption 배포 패키지 정의'를 참조하세요.
Azure Resource Manager 템플릿을 사용하여 배포
Azure Resource Manager(ARM) 템플릿인 ZipDeploy 확장 프로그램을 사용해 .zip 파일을 함수 앱에 푸시할 수 있습니다.
ZipDeploy ARM 템플릿 예시
이 템플릿에는 프로덕션 슬롯과 스테이징 슬롯이 모두 포함되어 있으며, 둘 중 하나에 배포합니다. 보통 이 템플릿을 사용해 스테이징 슬롯에 배포한 뒤, 새 zip 패키지를 프로덕션 슬롯에서 실행하기 위해 스왑합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServiceName": {
"type": "string"
},
"deployToProduction": {
"type": "bool",
"defaultValue": false
},
"slot": {
"type": "string",
"defaultValue": "staging"
},
"packageUri": {
"type": "secureString"
}
},
"resources": [
{
"condition": "[parameters('deployToProduction')]",
"type": "Microsoft.Web/sites/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
},
{
"condition": "[not(parameters('deployToProduction'))]",
"type": "Microsoft.Web/sites/slots/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
}
]
}
초기 배포 시에는 직접 생산 슬롯에 배치합니다. 자세한 내용은 슬롯 배포를 참조하세요.
배포 패키지에서 함수 실행
배포 패키지에서 직접 실행하면 디렉터리에 wwwroot 파일을 복사할 필요가 없습니다. 대신 Functions 런타임은 패키지를 읽기 전용 wwwroot 디렉터리로 마운트합니다. 이 접근 방식은 다음과 같습니다.
- 파일 복사 잠금(copite locking) 문제를 줄여줍니다.
- 앱에서 실행 중인 파일을 확인합니다.
- Azure Resource Manager 배포 성능을 향상시킵니다.
- 특히 npm 패키지 트리가 큰 자바스크립트 앱의 경우 콜드 스타트 시간을 줄일 수 있습니다.
플렉스 소비 패키지 구성
Flex Consumption 앱은 기본적으로 패키지에서 실행됩니다. 앱 설정을 추가 WEBSITE_RUN_FROM_PACKAGE 하지 마세요. 스토리지 컨테이너와 인증 방법을 포함한 배포 설정은 함수 앱 자원의 속성입니다. 자세한 내용은 배포를 참조하세요.
프리미엄 및 전용 패키지 구성
로컬에 배포된 패키지에서 직접 실행되도록 설정 WEBSITE_RUN_FROM_PACKAGE1 하세요. 런타임은 패키지를 Windows의 폴더나 /home/data/SitePackages Linux의 폴더에 c:\home\data\SitePackages 저장합니다.
소비 패키지 구성
지원되는 WEBSITE_RUN_FROM_PACKAGE 값은 운영체제에 따라 다릅니다:
| 운영 체제 | Value | 작동 방식 |
|---|---|---|
| Windows | 1 |
앱은 폴더 내 c:\home\data\SitePackages 패키지에서 실행됩니다. |
| Linux | <URL> |
앱은 지정된 URL의 패키지에서 실행됩니다. 관리 신원을 사용해 접근 가능한 개인 Azure Blob Storage 컨테이너를 사용하세요. |
중요합니다
소비 계획의 Linux 환경에서 지원 종료된 v3 런타임을 실행하는 함수 앱은 2026년 9월 30일 이후에 실행이 중지됩니다. 서비스 중단을 방지하려면 앱을 v4 런타임으로 마이그레이션합니다.
소비 계획에서 Linux에서 함수 앱을 호스트하는 옵션은 2028년 9월 30일에 사용 중지됩니다. Linux 사용 계획은 새로운 기능 또는 언어 버전을 가져오지 않습니다. 소비 계획에서 Windows 실행되는 앱은 현재 영향을 받지 않습니다. 사용 중지 날짜 전에 앱을 Flex 소비 계획으로 마이그레이션합니다.
패키지 배포 고려사항
함수 앱을 패키지에서 배포하고 실행할 때 다음과 같은 요구사항과 제한사항을 염두에 두세요:
- 패키지는 반드시 .zip 형식을 사용해야 합니다. Tar 및 gzip 형식은 지원되지 않습니다.
- 최대 패키지 크기는 1GB입니다. 배포는 프로젝트 파일을 언팩할 때 임시 저장소를 사용하기 때문에 앱도 충분한 임시 저장소를 가져야 합니다. 소비 요금제 는 플랜당 500MB의 임시 저장 공간을 제공합니다.
- 패키지에서 실행할 때, Azure 포털 내 파일
wwwroot들은 읽기 전용입니다. - 패키지에서 실행할 때는 로컬 캐시를 사용할 수 없습니다.
- 원격 빌드 요청 시점을 설정
WEBSITE_RUN_FROM_PACKAGE하지 마세요. 대신, 를 설정합니다SCM_DO_BUILD_DURING_DEPLOYMENT=true. 리눅스에서는 .ENABLE_ORYX_BUILD=true -
WEBSITE_RUN_FROM_PACKAGEMSDeploy에서는 작동하지 않습니다. 대신 zip 배포를 사용하세요.
WEBSITE_RUN_FROM_PACKAGE 설정 추가
함수 앱 설정을 추가, 업데이트 및 삭제할 수 있는 여러 가지 방법이 있습니다.
함수 앱 설정을 변경하려면 함수 앱을 다시 시작해야 합니다.
zip 배포로 업로드된 패키지에서 실행됩니다
패키지를 배포하기 전에 설정 WEBSITE_RUN_FROM_PACKAGE1 하세요. zip 배포 API는 패키지를 압축 wwwroot해제하는 대신 폴더에 SitePackages 복사합니다. 배포 시 마운트할 패키지를 식별하는 packagename.txt 파일을 생성합니다. 앱이 재시작되면 패키지가 읽기 전용 wwwroot 디렉터리로 마운트됩니다. Linux Consumption 앱은 이 설정을 지원하지 않으며, 대신 외부 패키지 URL에서 실행되어야 합니다.
배포가 앱을 재시작하면 현재 실행 중인 함수 실행이 종료됩니다. 재시작을 안전하게 처리하는 함수 작성에 관한 정보는 '함수 작성 to state less'를 참조하세요.
외부 패키지 URL에서 실행하세요
직접 패키지 저장을 관리해야 할 때는 외부 패키지 URL을 사용하세요. 이 옵션은 Linux Consumption 앱에서 로컬에서 빌드한 패키지를 실행하려면 필요합니다. Flex Consumption에서는 지원되지 않습니다.
메모
기존 함수 앱은 WEBSITE_RUN_FROM_PACKAGE=1 외부 패키지 URL에서 실행되는 것을 변경할 수 없습니다. 외부 패키지 URL을 사용하려면 새 함수 앱을 만들고 패키지 URL로 설정 WEBSITE_RUN_FROM_PACKAGE 하세요.
개인 Blob Storage 컨테이너를 사용하고 함수 앱의 관리 신원 접근 권한을 패키지에 부여하세요. 관리 신원을 사용하세요. SAS 토큰은 만료되어 유지보수가 필요합니다. 업데이트된 패키지를 게시할 때마다 트리거를 수동으로 동기화해야 합니다. URL을 변경하지 않고 패키지를 업데이트했다면, 동기화 트리거를 시작하기 전에 함수 앱을 재시작하세요.
패키지를 수동으로 Azure Blob Storage에 업로드하세요
.zip 배포 패키지를 만드세요.
Azure Portal에서 스토리지 계정으로 이동합니다.
데이터 저장소에서 컨테이너를 선택한 후 개인 컨테이너를 생성하거나 선택하세요.
패키지를 컨테이너에 업로드하세요.
업로드된 블롭을 선택하고 URL을 복사하세요. 관리 신원을 사용하지 않는다면 대신 SAS URL을 생성하세요.
함수 앱에서 설정을 펼치고, 환경 변수를 선택한 후 앱 설정 탭에서 추가를 선택하세요.
패키지 URL을 값으로 명명
WEBSITE_RUN_FROM_PACKAGE한 설정을 추가하세요.변경 사항을 적용하고, 앱을 재시작한 뒤 트리거를 수동으로 동기화하세요.
관리 신원을 사용하여 Azure Blob Storage에서 패키지를 가져오세요
Microsoft Entra ID를 사용하여 요청에 권한을 부여하도록 Azure Blob Storage를 구성할 수 있습니다. 이 구성은 만료된 SAS 키를 생성하는 대신 애플리케이션의 관리 ID를 사용할 수 있음을 의미합니다.
기본적으로 앱의 시스템 할당 ID가 사용됩니다. 사용자 할당 ID를 지정하려는 경우 WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID 앱 설정을 해당 ID의 리소스 ID로 설정할 수 있습니다. 설정은 SystemAssigned를 값으로 허용할 수도 있으며 이는 설정을 생략하는 것과 동등합니다.
ID를 사용하여 패키지를 가져올 수 있도록 설정하려면 다음을 수행합니다.
Blob이 프라이빗 액세스를 위해 구성되었는지 확인합니다.
ID에 패키지 Blob에 대한 범위가 있는 Storage Blob 데이터 읽기 권한자 역할을 부여합니다. 역할 할당을 만드는 방법에 대한 자세한 내용은 Blob 데이터에 액세스하기 위해 Azure 역할 할당을 참조하세요.
WEBSITE_RUN_FROM_PACKAGE애플리케이션 설정을 패키지의 Blob URL로 설정합니다. 이 URL은 일반적으로https://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package>또는 이와 유사한 형식입니다.사용자 할당 ID를 지정하려는 경우
WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID앱 설정을 해당 ID의 리소스 ID로 설정할 수 있습니다. 이 설정은 설정을 모두 생략하는 것과 동일하지만 SystemAssigned 를 값으로 수락할 수도 있습니다. 리소스 ID는 Azure 리소스에 대한 표준 표현입니다. 사용자 할당 관리 ID의 경우/subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name됩니다. 사용자 할당 관리 ID의 리소스 ID는사용자가 할당한 관리 ID의 >> ID에서 가져올 수 있습니다.
배포 사용자 지정
배포 프로세스는 사용자가 업로드하는 .zip 파일에 바로 실행 가능한 앱이 포함되어 있다고 가정합니다. 기본적으로 사용자 지정 작업은 실행되지 않습니다. 지속적 통합에서 제공되는 동일한 빌드 프로세스를 사용하려면 애플리케이션 설정에 다음을 추가하십시오.
SCM_DO_BUILD_DURING_DEPLOYMENT=true
.zip 푸시 배포를 사용하는 경우 이 설정은 기본적으로 false입니다. 지속적인 통합 배포에 대한 기본값은 true입니다. true로 설정하면 배포 중에 배포 관련 설정이 사용됩니다. 이러한 설정은 .zip 파일의 루트에 있는 앱 설정으로 구성하거나 .deployment 구성 파일에서 구성할 수 있습니다. 자세한 내용은 배포 참조의 리포지토리 및 배포 관련 설정을 참조하십시오.
함수 앱 파일 다운로드
현재 애플리케이션이 실행하는 것과 동일한 패키지가 필요하다면, 앱 배포에 맞게 설정된 Blob Storage 컨테이너에서 다운로드하세요:
Azure 포털의 함수 앱 페이지에서 설정을 확장한 후 배포 설정을 선택하세요.
애플리케이션 패키지 위치 아래에서 배포에 사용되는 스토리지 계정과 컨테이너를 확인하세요.
해당 스토리지 계정으로 가서 데이터 저장소를 펼친 후 컨테이너를 선택하세요.
배포 컨테이너를 선택하고 현재 패키지를 선택한 후 다운로드를 선택하세요.
다운로드한 패키지에는 배포한 구축된 앱 콘텐츠가 포함되어 있는데, 이는 소스 프로젝트와 다를 수 있습니다. 각 배포는 현재 패키지를 덮어쓰고, 배포 컨테이너는 배포 이력을 제공하지 않습니다.
CI/CD를 사용해 배포한 앱의 경우, 소스 프로젝트를 소스 컨트롤에 유지하고, 릴리스 유지 정책에 따라 즉시 실행 가능한 빌드 아티팩트를 유지하세요. 특정 릴리스를 재배포할 때 보유 아티팩트를 사용하세요. 애플리케이션이 현재 실행 중인 정확한 패키지가 필요하거나 원래 아티팩트가 더 이상 사용할 수 없을 때 배포 컨테이너에 있는 패키지를 사용하세요.
함수 앱 파일 다운로드
Azure 포털의 편집기를 사용하여 함수를 생성한 경우, 기존 함수 앱 프로젝트를 다음 방법 중 하나로 .zip 파일로 다운로드할 수 있습니다.
Azure Portal에 로그인하고 함수 앱으로 이동합니다.
개요 탭에서 앱 콘텐츠 다운로드를 선택합니다. 다운로드 옵션을 선택한 다음, 다운로드를 선택합니다.
.zip 푸시 배포를 사용하여 함수 앱에 다시 게시하려면 다운로드한 .zip 파일 형식이 필요합니다. 포털에서 다운로드하면 함수 앱을 Visual Studio에서 바로 열기 위해 필요한 파일도 추가할 수 있습니다.
CI/CD를 사용해 배포한 앱의 경우, 소스 프로젝트를 소스 컨트롤에 유지하고, 릴리스 유지 정책에 따라 즉시 실행 가능한 빌드 아티팩트를 유지하세요. 저장소에서 다운로드한 소스 아카이브는 배포 패키지가 아닙니다. 배포 워크플로우를 사용해 프로젝트를 구축하고 배포하세요.