Python 웹 Azure 개발자 CLI(azd) 템플릿은 Python 웹 애플리케이션을 빌드, 구성 및 Azure에 배포하는 가장 빠르고 쉬운 방법입니다. 이 문서에서는 관련된 구성 요소와 템플릿이 배포를 간소화하는 방법을 이해하는 데 도움이 되는 컨텍스트 배경 정보를 제공합니다.
시작하는 가장 좋은 방법은 빠른 시작을 따라 첫 번째 Python 웹앱을 만들고 템플릿을 사용하여 몇 분 azd 안에 Azure에 배포하는 것입니다. 로컬 개발 환경을 설정하지 않으려는 경우 미리 구성된 모든 도구에서 완전한 클라우드 기반 환경을 위해 GitHub Codespaces를 사용하여 빠른 시작을 따를 수 있습니다.
Python 웹 azd 템플릿은 무엇인가요?
템플릿은 azd 최소한의 설치 시간으로 Azure에 확장 가능한 클라우드 지원 애플리케이션을 배포하려는 숙련된 Python 웹 개발자를 위해 설계되었습니다.
이러한 템플릿은 다음을 통해 Python 웹 애플리케이션을 빌드하고 배포하기 위한 가장 쉬운 시작점을 제공합니다.
- 완전한 로컬 개발 및 호스팅 환경을 신속하게 설정합니다.
- 일치하는 Azure 배포 환경 만들기 자동화
- 간단하고 기억에 남는 CLI 워크플로를 사용합니다.
환경이 설정되면 템플릿은 Python 웹앱 빌드를 시작하는 가장 빠른 방법을 제공합니다. 다음을 할 수 있습니다:
- 앱의 요구 사항에 맞게 제공된 코드 파일을 수정합니다.
- azd 명령을 사용하여 최소한의 노력으로 업데이트를 배포합니다.
- 아키텍처에 맞게 템플릿을 확장합니다.
이러한 템플릿은 검증된 디자인 패턴과 모범 사례를 반영하여 다음을 수행할 수 있도록 합니다.
- 견고한 아키텍처 기반에 대한 확신을 가지고 빌드합니다.
- Python 및 Azure에 대한 깊은 경험을 가진 업계 전문가가 개발한 지침을 따릅니다.
- 처음부터 유지 관리 효율성, 확장성 및 보안을 보장합니다.
템플릿으로 수행할 수 있는 작업은 무엇인가요?
Python 웹 azd 템플릿을 실행하면 다음과 같은 여러 작업을 신속하게 완료할 수 있습니다.
시작 애플리케이션을 만듭니다. Relecloud라는 가상의 회사를 위한 웹 사이트를 빌드합니다. 이 시작 프로젝트에는 다음이 포함됩니다.
- 잘 구성된 프로덕션 준비 코드
- Python 웹 프레임워크에 대한 모범 사례(예: Flask, Django).
- 종속성, 구성 및 구조를 적절하게 사용합니다.
템플릿은 시작점으로 설계되었으며, 프로젝트에 맞게 논리를 자유롭게 사용자 지정하고 Azure 리소스를 확장하거나 제거할 수 있습니다.
Azure 리소스를 프로비전합니다. 템플릿은 최신 IaC(Infrastructure-as-code) 언어인 Bicep을 사용하여 다음을 위해 필요한 모든 Azure 리소스를 프로비전합니다.
- 웹앱 호스팅(예: App Service, Container Apps)
- 데이터베이스에 연결(예: PostgreSQL, Cosmos DB)
Bicep 파일은 완전히 편집할 수 있습니다. 앱이 발전함에 따라 Azure 서비스를 추가하거나 사용자 지정할 수 있습니다. 이전 작업과 마찬가지로 필요에 따라 Bicep 템플릿을 수정 하여 Azure 서비스를 더 추가할 수 있습니다.
프로비전된 Azure 리소스에 시작 앱을 배포합니다. 리소스가 프로비전되면 애플리케이션이 Azure 환경에 자동으로 배포됩니다. 이제 다음을 수행할 수 있습니다.
- 몇 분 내에 클라우드에서 실행되는 앱을 확인합니다.
- 해당 동작을 테스트합니다.
- 다음에 업데이트할 기능 또는 구성을 결정합니다.
(선택 사항) GitHub 리포지토리 및 CI/CD 파이프라인을 설정합니다. 필요에 따라 GitHub Actions CI/CD(연속 통합/지속적인 업데이트) 파이프라인 을 사용하여 GitHub 리포지토리를 초기화하여 다음을 수행할 수 있습니다.
- 코드 변경에 대한 배포를 자동화합니다.
- 팀 구성원과 공동 작업
- 메인 브랜치에 병합하여 Azure에 업데이트를 푸시하세요.
이 통합은 처음부터 DevOps 모범 사례를 채택하는 데 도움이 됩니다.
템플릿에 액세스할 수 있는 위치는 어디인가요?
대부분의 azd 템플릿은 Awesome Azure 개발자 CLI 템플릿 갤러리에서 사용할 수 있습니다. 이러한 템플릿은 Azure 서비스 및 Python 웹 프레임워크의 인기 있는 조합에서 기능 패리티를 사용하여 즉시 사용할 수 있는 Python 웹앱 프로젝트를 제공합니다.
각 템플릿에는 다음이 포함됩니다.
- 깨끗하고 유지 관리 가능한 코드가 있는 샘플 애플리케이션입니다.
- Bicep을 사용하여 코드로 인프라를 미리 구성했습니다.
- Azure 개발자 CLI를 사용하는 원활한 배포 워크플로.
- GitHub Actions를 통한 선택적 CI/CD 통합
다음 표에는 azd init 명령과 함께 사용할 수 있는 Python 웹 azd 템플릿 모니커가 목록으로 나와 있습니다. 테이블은 각 템플릿에 구현된 기술을 식별하고 해당 GitHub 리포지토리에 대한 링크를 제공하여 변경 내용을 제공할 수 있습니다.
Django 웹 프레임워크에 사용할 수 있는 템플릿은 다음과 같습니다azd.
| 템플릿 | 데이터베이스 | 호스팅 플랫폼 | GitHub 리포지토리 |
|---|---|---|---|
| azure-django-postgres-flexible-aca | Azure Database for PostgreSQL 유연한 서버 | Azure Container Apps | https://github.com/Azure-Samples/azure-django-postgres-flexible-aca |
| azure-django-postgres-flexible-appservice | Azure Database for PostgreSQL – 유연한 서버 | Azure App Service | https://github.com/Azure-Samples/azure-django-postgres-flexible-appservice |
| azure-django-cosmos-postgres-aca | Azure Database for PostgreSQL용 Azure Cosmos DB | Azure Container Apps (Azure 컨테이너 애플리케이션) | https://github.com/Azure-Samples/azure-django-cosmos-postgres-aca |
| azure-django-cosmos-postgres-앱서비스 | Azure Database for PostgreSQL용 Azure Cosmos DB | Azure App Service | https://github.com/Azure-Samples/azure-django-cosmos-postgres-appservice |
| azure-django-postgres-addon-aca | Azure Database for PostgreSQL을 사용하는 Azure Container Apps | Azure Container Apps (Azure 컨테이너 애플리케이션) | https://github.com/Azure-Samples/azure-django-postgres-addon-aca |
템플릿을 어떻게 사용해야 하나요?
각 azd 템플릿은 애플리케이션 코드(인기 있는 웹 프레임워크를 활용하는 Python 코드) 및 Azure 리소스를 만들기 위한 코드로서의 인프라(즉, Bicep) 파일이 포함된 GitHub 리포지토리로 구성됩니다. 템플릿에는 CI/CD 파이프라인을 사용하여 GitHub 리포지토리를 설정하는 데 필요한 구성도 포함되어 있습니다.
각 템플릿의 주요 구성 요소는 다음과 같습니다.
애플리케이션 코드: Python으로 작성되고 인기 있는 웹 프레임워크(예: Flask, Django, FastAPI)를 사용하여 빌드됩니다. 샘플 앱은 라우팅, 데이터 액세스 및 구성의 모범 사례를 보여 줍니다.
IaC(Infrastructure-as-Code): 다음과 같이 필요한 Azure 리소스를 정의하고 프로비전하기 위해 Bicep 파일을 통해 제공됩니다.
- App 서비스 또는 컨테이너 앱
- Azure Databases(예: PostgreSQL, Cosmos DB)
- Azure AI 서비스, 스토리지 등
CI/CD 구성(선택 사항): GitHub Actions CI/CD 파이프라인을 사용할 수 있도록 GitHub 리포지토리를 구성하는 파일을 포함합니다.
- 메인 브랜치로의 모든 푸시 또는 풀 요청에 대해 Azure에 자동 배포.
- DevOps 워크플로에 원활하게 통합
이러한 템플릿은 완전히 사용자 지정할 수 있으므로 프로젝트의 특정 요구 사항에 맞게 빌드하고 적응할 수 있는 강력한 기반을 제공합니다.
웹 템플릿에서 정의한 azd 작업을 수행하려면 다양한 Python azd 명령을 사용합니다. 이러한 명령에 대한 자세한 설명은 빠른 시작: Azure 개발자 CLI 템플릿 배포를 참조하세요. 빠른 시작에서는 특정 azd 템플릿을 사용하는 단계를 안내합니다. 프로덕션 호스팅 환경 및 로컬 개발 환경에 대한 5가지 필수 명령줄 지침만 실행하면 됩니다.
다음 표에서는 5가지 필수 명령을 요약합니다.
| 명령어 | 작업 설명 |
|---|---|
azd init --template <template name> |
템플릿에서 새 프로젝트를 만들고 로컬 컴퓨터에 애플리케이션 코드의 복사본을 만듭니다. 이 명령은 배포된 리소스 이름에 접두사로 사용되는 환경 이름(예: "myapp")을 제공하라는 메시지를 표시합니다. |
azd auth login |
Azure에 로그인합니다. 이 명령은 Azure에 로그인할 수 있는 브라우저 창을 엽니다. 로그인하면 브라우저 창이 닫히고 명령이 완료됩니다. 이 azd auth login 명령은 세션당 Azure 개발자 CLI(azd)를 처음 사용할 때만 필요합니다. |
azd up |
클라우드 리소스를 프로비전하고 해당 리소스에 앱을 배포합니다. |
azd deploy |
명령에 의해 이미 프로비전된 리소스에 애플리케이션 소스 코드의 변경 내용을 배포합니다 azd up . |
azd down |
사용된 경우 Azure 리소스 및 CI/CD 파이프라인을 삭제합니다. |
팁 (조언)
azd 명령을 사용할 때, 추가 정보를 입력하라는 메시지가 표시되는지 주의합니다. 명령을 실행한 azd up 후 구독을 선택하라는 메시지가 표시될 수 있습니다(둘 이상이 있는 경우). 지역을 지정하라는 메시지가 표시될 수도 있습니다. 템플릿의 /.azure/ 폴더에 저장된 환경 변수를 편집하여 프롬프트로 답변을 변경할 수 있습니다.
템플릿에서 제공하는 azd 필수 작업을 완료한 후 필요에 따라 파일을 수정할 수 있는 원본 템플릿의 개인 복사본이 있습니다.
- 애플리케이션 코드: Python 프로젝트 코드를 사용자 지정하여 고유한 디자인, 경로 및 비즈니스 논리를 구현합니다.
- Bicep(Infrastructure-as-Code): Bicep 파일을 업데이트하여 추가 Azure 서비스를 프로비전하거나, 구성을 변경하거나, 불필요한 리소스를 제거합니다.
이 유연한 시작점을 사용하면 실제 사용 사례에 맞게 앱을 조정하면서 잘 구성된 기초를 기반으로 빌드할 수 있습니다.
Azure 리소스를 변경해야 하는 경우 코드 기반 인프라 구성을 수정 할 수도 있습니다. 자세한 내용은 이 문서의 뒷부분에 있는 편집 또는 삭제할 수 있는 항목 섹션을 참조하세요.
선택적 템플릿 작업
5가지 필수 명령 외에도 템플릿으로 azd 완료할 수 있는 선택적 작업이 있습니다.
Azure 리소스 다시 프로비전 및 수정
템플릿을 사용하여 Azure 리소스를 프로비전한 후 리소스를 azd 수정하고 다시 프로비전할 수 있습니다.
- 프로비전된 리소스를 수정하려면 템플릿 에서 적절한 Bicep 파일을 편집 합니다.
- 명령어
azd provision를 사용하여 프로비저닝 작업을 시작합니다.
CI/CD 파이프라인 설정
Azure 개발자 CLI(azd)는 새 Python 웹앱에 대한 CI/CD 파이프라인을 쉽게 설정할 수 있는 방법을 제공합니다. 커밋 또는 끌어오기 요청을 주 분기에 병합하면 파이프라인이 변경 내용을 자동으로 빌드하고 Azure 리소스에 게시합니다.
- CI/CD 파이프라인을 설정하려면 GitHub 리포지토리 및 원하는 설정을 지정하여 파이프라인을 사용하도록 설정합니다.
- 파이프라인을 만들려면 명령을 사용합니다
azd pipeline config.
파이프라인을 구성한 후 코드 변경 내용이 리포지토리의 주 분기에 병합될 때마다 파이프라인은 프로비전된 Azure 서비스에 변경 내용을 배포합니다.
템플릿에 대한 대안
Python 웹 템플릿을 사용하지 않으려면 Azure에 Python 웹 azd 앱을 배포하고 Azure 리소스를 프로비전하는 대체 방법이 있습니다.
여러 도구를 사용하여 많은 리소스를 만들고 배포 단계를 완료할 수 있습니다.
- Azure Portal
- Azure CLI
- Azure Tools 확장을 사용하는 Visual Studio Code
Python 웹 개발 프레임워크를 제공하는 엔드 투 엔드 자습서를 따를 수도 있습니다.
자주 묻는 질문
다음 섹션에서는 Python 웹 azd 템플릿 작업에 대한 질문과 대답을 요약합니다.
개발 컨테이너를 사용해야 하나요?
아니요. Python 웹 azd 템플릿은 기본적으로 Visual Studio Code 개발 컨테이너를 사용합니다. 개발자 컨테이너는 많은 이점을 제공하지만 몇 가지 필수 구성 요소 지식과 소프트웨어가 필요합니다. 개발자 컨테이너를 사용하지 않고 로컬 개발 환경을 대신 사용하려는 경우 환경 설정 지침은 샘플 앱의 루트 디렉터리에 있는 README.md 파일을 참조하세요.
무엇을 편집하거나 삭제할 수 있나요?
각 Python 웹 azd 템플릿의 내용은 프로젝트 유형 및 채택된 기본 기술 스택에 따라 달라질 수 있습니다. 이 문서에서 식별된 템플릿은 다음 표에 설명된 대로 공통 폴더 및 파일 규칙을 따릅니다.
| 폴더/파일 | 목적 | 설명 |
|---|---|---|
| / | 루트 디렉터리 | 각 템플릿의 루트 폴더에는 다양한 용도로 다양한 종류의 파일과 폴더가 포함되어 있습니다. |
| /.azure |
azd 구성 파일 |
명령을 실행한 후 .azure 폴더가 azd init 만들어집니다. 이 폴더는 명령에서 사용하는 azd 환경 변수에 대한 구성 파일을 저장합니다. 환경 변수의 값을 변경하여 앱 및 Azure 리소스를 사용자 지정할 수 있습니다. 자세한 내용은 환경별 .env 파일을 참조하세요. |
| /.devcontainer | Dev Container 구성 파일 | 개발자 컨테이너를 사용하면 Visual Studio Code 내에서 소프트웨어 개발에 필요한 모든 리소스를 갖춘 컨테이너 기반 개발 환경을 만들 수 있습니다. .devcontainer 폴더는 Visual Studio Code가 템플릿 명령에 대한 응답으로 Dev Container 구성 파일을 생성한 후에 만들어집니다. |
| /.github | GitHub Actions 구성 파일 | 이 폴더에는 선택적 GitHub Actions CI/CD 파이프라인, Linting 및 테스트에 대한 구성 설정이 포함되어 있습니다. 명령을 사용하여 azd pipeline config GitHub Actions 파이프라인을 설정하지 않으려면 azure-dev.yaml 파일을 수정하거나 삭제할 수 있습니다. |
| /인프라 | Bicep 파일 | 인프라 폴더에는 Bicep 구성 파일이 있습니다. Bicep을 사용하면 환경에 배포하려는 Azure 리소스를 선언할 수 있습니다. main.bicep 및 web.bicep 파일만 수정해야 합니다. 자세한 내용은 빠른 시작: Bicep을 사용하여 azd Python 웹 템플릿으로 배포된 크기 조정 서비스를 참조하세요. |
| /src | 시작 프로젝트 코드 파일 | src 폴더에는 시작 프로젝트를 준비하는 데 필요한 다양한 코드 파일이 포함되어 있습니다. 파일의 예로는 웹 프레임워크에 필요한 템플릿, 정적 파일, 코드 논리 및 데이터 모델에 대한 Python(.py) 파일, requirements.txt 파일 등이 있습니다. 특정 파일은 웹 프레임워크, 데이터 액세스 프레임워크 등에 따라 달라집니다. 프로젝트 요구 사항에 맞게 이러한 파일을 수정할 수 있습니다. |
| /.cruft.json | 템플릿 생성 파일 |
.cruft JSON 파일은 내부적으로 Python 웹 azd 템플릿을 생성하는 데 사용됩니다. 필요에 따라 이 파일을 안전하게 삭제할 수 있습니다. |
| /.gitattributes | git에 대한 특성 설정이 있는 파일 | 이 파일은 파일 및 폴더를 처리하기 위한 중요한 구성 설정을 git에 제공합니다. 필요에 따라 이 파일을 수정할 수 있습니다. |
| /.gitignore | git에 대해 무시된 항목이 있는 파일 | .gitignore 파일은 템플릿에 대한 GitHub 리포지토리에 쓸 때 제외(무시)할 파일 및 폴더에 대해 git에 알릴 수 있습니다. 필요에 따라 이 파일을 수정할 수 있습니다. |
| /azure.yaml |
azd up 구성 파일 |
이 구성 파일에는 명령에 대한 구성 설정이 포함되어 있습니다 azd up . 배포할 서비스 및 프로젝트 폴더를 지정합니다.
중요: 이 파일을 삭제해서는 안 됩니다. |
| /*.md | Markdown 서식 파일 | 템플릿은 다양한 용도로 다양한 Markdown(.md) 형식 파일을 포함할 수 있습니다. Markdown 파일을 안전하게 삭제할 수 있습니다. |
| /docker-compose.yml | Docker 작성 설정 | 이 YML 파일은 앱이 Azure에 배포되기 전에 Python 웹 애플리케이션에 대한 컨테이너 패키지를 만듭니다. |
| /pyproject.toml | Python 빌드 설정 파일 | TOML 파일에는 Python 프로젝트의 빌드 시스템 요구 사항이 포함되어 있습니다. 이 파일을 수정하여 특정 linter 또는 단위 테스트 프레임워크와 같은 도구 선호 설정을 설정할 수 있습니다. |
| /requirements-dev.in | pip 요구 사항 파일 | 이 파일은 명령을 사용하여 pip install -r 요구 사항의 개발 환경 버전을 만드는 데 사용됩니다. 필요에 따라 다른 패키지를 포함하도록 이 파일을 수정할 수 있습니다. |
팁 (조언)
프로그램에 대한 템플릿 파일을 수정할 때는 좋은 버전 제어를 연습해야 합니다. 이 방법은 새 변경으로 인해 프로그램 문제가 발생하는 경우 리포지토리를 이전 작업 버전으로 복원하는 데 도움이 될 수 있습니다.
템플릿 오류를 어떻게 처리할 수 있나요?
템플릿을 사용할 azd 때 오류가 발생하는 경우 Azure 개발자 CLI 문제 해결 문서에 설명된 옵션을 검토합니다. GitHub 리포지토리에서 azd 템플릿과 연결된 문제를 보고할 수도 있습니다.