프로젝트를 진행하던 중, 기존에 쓰던 AWS가 비용이 너무 많이 나가는 바람에...
무료 토큰이 제공되는 Azure로 배포 플랫폼을 바꾸기로 결정했다.
Windows Local 환경에서 Azure function을 설치하고 실행하는 방법에 대해 알아보고자 포스팅을 시작했다.
0. pre-requisite
Azure Functions를 로컬에서 실행하기 위해서는 Azure Function Core Tools가 필요하며, 이를 위해서 Node.js를 설치해야 한다.
Node.js — Download Node.js®
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
- Azure Function (설치 및 Documentation)
https://learn.microsoft.com/ko-kr/azure/azure-functions/functions-run-local?tabs=windows%2Cisolated-process%2Cnode-v4%2Cpython-v2%2Chttp-trigger%2Ccontainer-apps&pivots=programming-language-csharp
- vscode extension - "Azure Functions"
- 가상환경 내 `azure-functions` 설치
- 'azure' 메타 패키지가 5.0.0 이후로 지원되지 않기 때문에, 원하는 패키지들을 따로따로 설치해야 한다.
https://github.com/Azure/azure-sdk-for-python/issues/10646
- 'azure' 메타 패키지가 5.0.0 이후로 지원되지 않기 때문에, 원하는 패키지들을 따로따로 설치해야 한다.
1. Azure Functions 프로젝트 초기화
프로젝트 디렉토리에서 Azure Functions 프로젝트를 초기화한다.
func init . --python
이렇게 뜨면 성공!
2. app.py (Flask)
app.py에 작동을 원하는 코드를 생성한다.
https://learn.microsoft.com/ko-kr/azure/app-service/configure-language-python
3. local.settings.json
여기서 환경 변수에 필요한 값들을 입력하면 된다.
나는 팀원에게 받아둔 게 있어서 그대로 복붙했다.
// local.settings.json 예시
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "python",
"OPENAI_KEY": "your_openai_key",
"MONGODB_ATLAS_CLUSTER_URI": "your_mongodb_uri"
}
}
4. requirements.txt & venv install and activate
프로젝트 초기화 이후 venv 폴더가 생성되어 있을 것이다.
requirements.txt에 필요한 패키지를 명시하고, .venv에 설치한다.
python -m venv .venv
# Windows
source .venv/Scripts/activate
# Mac
source .venv/bin/activate
pip install -r requirements.txt
5. 터미널에서 명령어 실행
func start
6. 함수 테스트
Postman을 사용하여 함수 테스트를 진행했다.
// (GET) get_echo_call
http://localhost:7071/api/get_test/{param}
// (POST) question
http://localhost:7071/api/question
'NLP > 프로젝트' 카테고리의 다른 글
GPT Batch API 활용법 (1) - Batch request (0) | 2025.02.06 |
---|---|
좋은 프로젝트란 무엇인가? - 기획편 (0) | 2025.01.16 |
How to Build domain-specific Embedding model - (2) : Dataset (34) | 2024.12.11 |
Azure Function - Mac setting (1) | 2024.12.09 |
How to Build domain-specific Embedding model - (1) : 선행 연구 조사 (2) | 2024.12.04 |