함수 앱 관리
Azure Functions에서 함수 앱은 개별 함수에 대한 실행 컨텍스트를 제공합니다. 함수 앱 동작은 지정된 함수 앱에서 호스트하는 모든 함수에 적용됩니다. 함수 앱의 모든 함수는 동일한 언어여야 합니다.
함수 앱의 개별 함수는 함께 배포되며 함께 확장됩니다. 동일한 함수 앱의 모든 함수는 함수 앱이 확장될 때 인스턴스당 리소스를 공유합니다.
연결 문자열, 환경 변수 및 기타 애플리케이션 설정은 각 함수 앱에 대해 개별적으로 정의됩니다. 함수 앱 간에 공유해야 하는 모든 데이터는 지속형 스토리지에 외부적으로 저장해야 합니다.
Azure Portal에서 시작
참고 항목
Azure Portal에서 함수 코드를 편집하는 데 제한이 있으므로 함수를 로컬로 개발하고 Azure의 함수 앱에 코드 프로젝트를 게시해야 합니다. 자세한 내용은 Azure Portal의 개발 제한 사항을 참조하세요.
함수 앱에서 앱 설정을 보려면 다음 단계를 따릅니다.
Azure 계정을 사용하여 Azure Portal에 로그인합니다. 함수 앱을 검색하여 선택합니다.
함수 앱의 왼쪽 창에서 설정을 확장하고 환경 변수를 선택한 다음 앱 설정 탭을 선택합니다.
애플리케이션 설정 작업
Azure Functions에서 사용하는 미리 정의된 앱 설정 외에도 Functions 코드에 필요한 대로 앱 설정을 원하는 만큼 만들 수 있습니다. 자세한 내용은 Azure Functions에 대한 앱 설정 참조를 참조하세요.
이러한 설정은 암호화되어 저장됩니다. 자세한 내용은 앱 설정 보안을 참조하세요.
Azure Portal에서, 그리고 Azure CLI 및 Azure PowerShell을 사용하여 앱 설정을 관리할 수 있습니다. Visual Studio Code 및 Visual Studio에서 앱 설정을 관리할 수도 있습니다.
앱 설정을 보려면 Azure Portal 시작을 참조하세요.
앱 설정 탭에는 함수 앱에서 사용되는 설정이 유지됩니다.
애플리케이션 설정 사용
이 함수 앱 설정 값은 코드에서 환경 변수로 읽을 수도 있습니다. 자세한 내용은 다음 언어별 참조 문서의 Environment 변수 섹션을 참조하세요.
함수 앱을 로컬로 개발하는 경우 local.settings.json 프로젝트 파일에 이러한 값의 로컬 복사본을 유지 관리해야 합니다. 자세한 내용은 로컬 설정 파일을 참조하세요.
FTPS 배포 설정
Azure Functions는 FTPS를 사용하여 함수 앱에 프로젝트 코드 배포를 지원합니다. 이 배포 방법을 사용하려면 트리거 동기화가 필요하므로 권장되지 않습니다. 프로젝트 파일을 안전하게 전송하려면 언제나 FTP 대신 FTPS를 사용합니다.
FTPS 배포에 필요한 자격 증명을 가져오려면 다음 방법 중 하나를 사용합니다.
함수 앱에 대한 게시 프로필을 다운로드하여 Azure Portal의 FTPS 게시 자격 증명을 가져올 수 있습니다.
Important
게시 프로필에는 중요한 보안 자격 증명이 포함되어 있습니다. 다운로드한 파일은 항상 로컬 컴퓨터에 안전하게 보관합니다.
함수 앱의 게시 프로필을 다운로드하려면 다음을 수행합니다.
Azure Portal에서 함수 앱의 페이지를 찾고 왼쪽 열에서 설정>구성을 확장합니다.
구성 페이지에서 일반 설정 탭을 선택하고 SCM 기본 인증 게시 자격 증명이 켜져있는지 확인합니다. 이 설정이 꺼져있는 경우 게시 프로필을 사용할 수 없으므로 켜기를 선택한 다음 저장을 선택합니다.
함수 앱의 개요 페이지로 돌아간 다음 게시 프로필 가져오기를 선택합니다.
파일 콘텐츠를 저장한 후 복사합니다.
- 파일에서 특성이
publishMethod="FTP"
인publishProfile
요소를 찾습니다. 이 요소에서publishUrl
,userName
특성과userPWD
특성에는 FTPS 게시에 대한 대상 URL 및 자격 증명이 포함됩니다.
호스팅 계획 유형
함수 앱을 만들 때 앱이 실행되는 호스팅 계획도 만들 수도 있습니다. 계획에는 하나 이상의 함수 앱이 있을 수 있습니다. 함수의 기능, 크기 조정 및 가격은 계획 유형에 따라 달라집니다. 자세한 내용은 Azure Functions 호스팅 옵션을 참조하세요.
Azure Portal에서 함수 앱에 사용되는 계획의 유형을 결정하거나 Azure CLI 또는 Azure PowerShell API를 사용하여 확인할 수 있습니다.
다음 값은 계획 유형을 가리킵니다.
플랜 유형 | Azure Portal | Azure CLI/PowerShell |
---|---|---|
소비 | 소비 | Dynamic |
Premium | ElasticPremium | ElasticPremium |
전용(App Service) | 다양 | 다양 |
함수 앱에서 사용하는 계획 형식을 확인하려면 Azure Portal에 있는 함수 앱의 개요 페이지에서 App Service 요금제를 참조하세요.
가격 책정 계층을 보려면 App Service 요금제의 이름을 선택한 다음 왼쪽 창에서 설정 > 속성을 선택합니다.
마이그레이션 계획
Windows에서 사용량 플랜과 프리미엄 플랜 간에 함수 앱을 마이그레이션할 수 있습니다. 플랜 간에 마이그레이션할 때 다음 고려 사항에 유의합니다.
- 전용(App Service) 계획으로의 직접 마이그레이션은 지원되지 않습니다.
- 마이그레이션은 Linux에서 지원되지 않습니다.
- 원본 플랜과 대상 플랜은 동일한 리소스 그룹 및 지리적 지역에 있어야 합니다. 자세한 내용은 앱을 다른 App Service 계획으로 이동을 참조하세요.
- 특정 CLI 명령은 마이그레이션 방향에 따라 다릅니다.
- 함수 앱이 한쪽 계획에서 다른쪽 계획으로 마이그레이션될 때 함수 실행이 가동 중지되는 시간이 발생합니다.
- 상태 및 기타 앱별 콘텐츠는 마이그레이션 전후에 앱에서 동일한 Azure Files 공유를 사용하므로 유지됩니다.
다음 도구를 사용하여 계획을 마이그레이션할 수 있습니다.
Azure Portal을 사용하여 다른 계획으로 전환할 수 있습니다.
Windows에서 앱의 마이그레이션 방향을 선택합니다.
Azure Portal의 개발 제한 사항
다음 표에서는 Portal 내 편집을 지원하는 운영 체제 및 언어를 보여 줍니다.
언어 | Windows 사용 | Windows 프리미엄 | Windows 전용 | Linux 사용 | Linux 프리미엄 | Linux 전용 |
---|---|---|---|---|---|---|
C# | ||||||
Java | ||||||
JavaScript(Node.js) | ✔ | ✔ | ✔ | ✔ | ✔ | |
Python | ✔ | ✔ | ✔ | |||
PowerShell | ✔ | ✔ | ✔ | |||
TypeScript(Node.js) |
Azure Portal에서 함수를 개발할 때 다음 제한 사항을 고려합니다.
- 포털 내 편집은 Azure Portal에서 만들어졌거나 마지막으로 수정된 함수에 대해서만 지원됩니다.
- 포털 내 편집은 JavaScript, PowerShell, Python 및 C# 스크립트 함수에 대해서만 지원됩니다.
- Flex 사용량 플랜의 미리 보기 릴리스에서는 포털 내 편집이 지원되지 않습니다.
- Azure Portal 외부에서 함수 앱에 코드를 배포하면 더 이상 포털에서 해당 함수 앱에 대한 코드를 편집할 수 없습니다. 이 경우에는 계속해서 로컬 개발을 사용합니다.
- Python의 경우 사용자 지정 모듈을 사용한 개발은 현재 포털에서 지원되지 않습니다. 함수 앱에 사용자 지정 모듈을 추가하려면 앱을 로컬로 개발해야 합니다.
- 컴파일된 C# 함수 및 Java 함수의 경우 포털에서 함수 앱 및 관련 리소스를 만들 수 있습니다. 그러나 함수 코드 프로젝트를 로컬로 만든 다음, Azure에 게시해야 합니다.
가능하면 로컬에서 함수를 개발하고 코드 프로젝트를 Azure의 함수 앱에 게시합니다. 자세한 내용은 Azure Functions를 로컬에서 코딩 및 테스트를 참조하세요.
수동으로 확장 설치
C# 클래스 라이브러리 함수는 클래스 라이브러리 프로젝트에서 직접 바인딩 확장을 위한 NuGet 패키지를 포함할 수 있습니다. 다른 non-.NET 언어 및 C# 스크립트의 경우 확장 번들을 사용해야 합니다. 확장을 수동으로 설치해야 하는 경우 로컬로 Azure Functions Core Tools를 사용하여 이렇게 할 수 있습니다. 확장 번들을 사용할 수 없고 포털에서만 작업할 수 있는 경우 고급 도구(Kudu)를 사용하여 사이트에서 직접 extensions.csproj 파일을 수동으로 만들어야 합니다. 먼저 host.json 파일에서 extensionBundle
요소를 제거해야 합니다.
이 동일한 프로세스는 앱에 추가해야 하는 다른 모든 파일에 대해 작동합니다.
Important
가능하면 Azure의 함수 앱에서 파일을 직접 편집하지 마세요. 앱 파일을 로컬로 다운로드하고, Core Tools를 사용하여 확장 및 기타 패키지를 설치하고, 변경 내용의 유효성을 검사한 다음, 기타 지원되는 배포 방법 중 하나 또는 Core Tools를 사용하여 앱을 다시 배포하는 것이 좋습니다.
Azure Portal에 기본 제공되는 Functions 편집기를 사용하면 포털에서 직접 Functions 코드와 구성 파일을 업데이트할 수 있습니다.
함수 앱을 선택한 다음 Functions에서 Functions를 선택합니다.
함수를 선택하고 개발자에서 코드 + 테스트를 선택합니다.
편집할 파일을 선택하고 완료되면 저장을 선택합니다.
function.proj 또는 extension.csproj와 같은 앱 루트의 파일은 고급 도구(Kudu)를 사용하여 만들고 편집해야 합니다.
함수 앱을 선택하고 개발 도구를 펼친 다음 고급 도구>이동을 선택합니다.
메시지가 표시되면 Azure 자격 증명을 사용하여 SCM(소스 제어 관리자) 사이트에 로그인합니다.
디버그 콘솔 메뉴에서 CMD를 선택합니다.
.\site\wwwroot
로 이동하여 상단의 더하기(+) 단추를 선택한 다음 새 파일을 선택합니다.파일 이름(예:
extensions.csproj
)을 지정한 다음 Enter 키를 누릅니다.새 파일 옆에 있는 편집 단추를 선택하고 파일에 코드를 추가하거나 업데이트한 다음 저장을 선택합니다.
extensions.csproj와 같은 프로젝트 파일의 경우 다음 명령을 실행하여 확장 프로젝트를 다시 빌드합니다.
dotnet build extensions.csproj
플랫폼 기능
함수 앱은 이를 유지 관리하는 Azure App Service 플랫폼에서 실행됩니다. 따라서 함수 앱은 Azure의 핵심 웹 호스팅 플랫폼 기능 대부분에 액세스할 수 있습니다. Azure Portal을 사용하는 경우 왼쪽 창에서 함수 앱에서 사용할 수 있는 App Service 플랫폼의 많은 기능에 액세스할 수 있습니다.
다음 행렬은 호스팅 플랜 및 운영 체제에 따른 Azure Portal 기능 지원을 나타냅니다.
기능 | 사용 계획 | Flex 사용량 계획 | 프리미엄 계획 | 전용 계획 |
---|---|---|---|---|
고급 도구(Kudu) | Windows: ✔ Linux: X |
X | ✔ | ✔ |
App Service 편집기 | Windows: ✔ Linux: X |
X | Windows: ✔ Linux: X |
Windows: ✔ Linux: X |
Backup | X | X | X | ✔ |
콘솔 | Windows: 명령줄 Linux: X |
X | Windows: 명령줄 Linux: SSH |
Windows: 명령줄 Linux: SSH |
이 문서의 나머지 부분에서는 함수 앱에 유용한 포털의 다음 기능에 대해 집중적으로 설명합니다.
App Service 설정을 사용하는 방법에 대한 자세한 내용은 Azure App Service 설정 구성을 참조하세요.
App Service 편집기
App Service 편집기는 JSON 구성 파일과 코드 파일을 둘 다 수정하는 데 사용할 수 있는 포털 내 고급 편집기입니다. 이 옵션을 선택하면 기본 편집기와 함께 별도의 브라우저 탭이 실행됩니다. 편집기를 통해 Git 리포지토리와 통합하고 코드를 실행 및 디버깅하며 함수 앱 설정을 수정할 수 있습니다. 이 편집기는 기본 제공 함수 편집기와 비교할 때 함수에 대해 고급 개발 환경을 제공합니다.
로컬 컴퓨터에서 함수를 개발하는 것이 좋습니다. 로컬로 개발하고 Azure에 게시하는 경우 프로젝트 파일은 Azure Portal에서 읽기 전용입니다. 자세한 내용은 Azure Functions를 로컬에서 코딩 및 테스트를 참조하세요.
콘솔
포털 내 콘솔은 명령줄에서 함수 앱과 상호 작용하려는 경우에 이상적인 개발자 도구입니다. 일반적인 명령에는 배치 파일 및 스크립트 실행과 함께 디렉터리 및 파일의 생성 및 탐색이 포함됩니다.
로컬로 개발하는 경우 Azure Functions Core Tools 및 Azure CLI를 사용하는 것이 좋습니다.
고급 도구(Kudu)
App Service용 고급 도구(Kudu라고도 함)를 사용하면 함수 앱의 고급 관리 기능에 액세스할 수 있습니다. Kudu에서 시스템 정보, 앱 설정, 환경 변수, 사이트 확장, HTTP 헤더 및 서버 변수를 관리할 수 있습니다. 함수 앱의 SCM 엔드포인트(예: https://<myfunctionapp>.scm.azurewebsites.net/
)를 찾아 Kudu를 시작할 수도 있습니다.
배포 센터
소스 제어 솔루션을 사용하여 함수 코드를 개발하고 유지 관리하는 경우 배포 센터를 사용하여 소스 제어에서 빌드 및 배포할 수 있습니다. 업데이트를 수행할 때 프로젝트가 빌드되고 Azure에 배포됩니다. 자세한 내용은 Azure Functions의 배포 기술을 참조하세요.
크로스-원본 자원 공유
클라이언트에서 악의적인 코드가 실행되는 것을 방지하기 위해 최신 브라우저는 웹 애플리케이션의 요청을 별도의 도메인에서 실행되는 리소스로 차단합니다. CORS(원본 간 리소스 공유)를 사용하면 Access-Control-Allow-Origin
헤더에서 함수 앱의 엔드포인트를 호출할 수 있는 원본을 선언할 수 있습니다.
함수 앱에 대해 허용된 원본 목록을 구성할 때 Access-Control-Allow-Origin
헤더는 함수 앱의 HTTP 엔드포인트에서 모든 응답에 자동으로 추가됩니다.
다른 도메인 항목이 있는 경우 와일드카드(*)는 무시됩니다.
인증
함수가 HTTP 트리거를 사용하는 경우 먼저 호출이 인증되도록 요구할 수 있습니다. App Service는 Facebook, Microsoft 및 X와 같은 소셜 공급자를 사용하여 Microsoft Entra 인증 및 로그인을 지원합니다. 특정 인증 공급자를 구성하는 방법에 대한 자세한 내용은 Azure App Service 인증 개요를 참조하세요.