다음을 통해 공유


Python 웹 azd 템플릿 개요

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 수정하고 다시 프로비전할 수 있습니다.

CI/CD 파이프라인 설정

Azure 개발자 CLI(azd)는 새 Python 웹앱에 대한 CI/CD 파이프라인을 쉽게 설정할 수 있는 방법을 제공합니다. 커밋 또는 끌어오기 요청을 주 분기에 병합하면 파이프라인이 변경 내용을 자동으로 빌드하고 Azure 리소스에 게시합니다.

  • CI/CD 파이프라인을 설정하려면 GitHub 리포지토리 및 원하는 설정을 지정하여 파이프라인을 사용하도록 설정합니다.
  • 파이프라인을 만들려면 명령을 사용합니다 azd pipeline config .

파이프라인을 구성한 후 코드 변경 내용이 리포지토리의 분기에 병합될 때마다 파이프라인은 프로비전된 Azure 서비스에 변경 내용을 배포합니다.

템플릿에 대한 대안

Python 웹 템플릿을 사용하지 않으려면 Azure에 Python 웹 azd 앱을 배포하고 Azure 리소스를 프로비전하는 대체 방법이 있습니다.

여러 도구를 사용하여 많은 리소스를 만들고 배포 단계를 완료할 수 있습니다.

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.bicepweb.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 템플릿과 연결된 문제를 보고할 수도 있습니다.