프로젝트가 Azure Developer CLI와 호환되도록 만들기
Azure 개발자 CLI(azd
)를 사용하면 개발자가 GitHub에서 호스트되는 템플릿을 사용하여 클라우드용 애플리케이션을 스캐폴드할 수 있습니다 . Microsoft는 시작하는 데 사용할 수 있는 몇 가지 템플릿을 제공합니다. 이 문서에서는 사용자 고유의 애플리케이션 azd
을 호환하도록 만드는 방법을 알아봅니다.
템플릿 아키텍처 이해
다음 다이어그램에서는 템플릿을 만드는 프로세스에 대한 간략한 개요를 azd
제공합니다.
모든 azd
템플릿은 규칙에 따라 azd
동일한 파일 구조를 갖습니다. 다음 계층 구조는 이 자습서에서 빌드할 디렉터리 구조를 보여줍니다.
├── .azdo [ Configures an Azure Pipeline ]
├── .devcontainer [ For DevContainer ]
├── .github [ Configures a GitHub workflow ]
├── .vscode [ VS Code workspace configurations ]
├── .azure [ Stores Azure configurations and environment variables ]
├── infra [ Contains infrastructure as code files ]
│ ├── main.bicep/main.tf [ Main infrastructure file ]
│ ├── main.parameters.json/main.tfvars.json [ Parameters file ]
│ └── core/modules [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml [ Describes the app and type of Azure resources]
템플릿 초기화
이 azd init
명령은 Azure에서 앱 리소스를 프로비전하고 배포하기 위해 애플리케이션을 초기화하는 데 사용됩니다. 이 명령은 다음 섹션에 설명된 템플릿을 초기화하기 위해 서로 다른 두 워크플로 중에서 선택하라는 메시지를 표시합니다.
현재 디렉터리의 코드 사용: 프로그래밍 언어, 프레임워크 및 데이터베이스 시스템과 같이 디렉터리의 코드를 분석하여 사용하는 기술을 ID로 지정하도록 지시
azd
하려면 이 옵션을 선택합니다.azd
그러면 서비스 정의 파일 및 코드로서의 인프라 파일이 있는 폴더와 같은azure.yaml
템플릿 자산이infra
자동으로 생성됩니다.템플릿 선택: 기존 템플릿을 시작점으로 사용하려면 이 옵션을 선택합니다. 기본적으로
azd
Awesome AZD 갤러리에서 템플릿을 찾아볼 수 있지만 고유한 템플릿 갤러리를 구성할 수도 있습니다. 템플릿을 선택하면 해당 템플릿의 자산이 기존 프로젝트 디렉터리에 추가됩니다.
이러한 각 워크플로의 세부 정보는 아래 섹션에 설명되어 있습니다.
사용자 고유의 프로젝트를 사용하여 앞으로의 단계를 수행할 수 있습니다. 그러나 샘플 애플리케이션을 사용하여 수행하려는 경우 다음 시작 리포지토리를 컴퓨터의 빈 디렉터리에 복제합니다.
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
선택한 명령줄 도구를 프로젝트의 루트 디렉터리로 엽니다.
azd init
명령을 실행하여 템플릿을 초기화합니다.azd init
메시지가 표시되면 현재 디렉터리에서 코드를 사용하는 옵션을 선택합니다.
azd
는 프로젝트를 분석하고 검색된 서비스 및 권장 Azure 호스팅 리소스에 대한 요약을 제공합니다.확인을 선택하고 내 앱을 계속 초기화합니다.
azd
는 프로젝트 루트 디렉터리에 다음 자산을 생성합니다.azure.yaml
적절한 서비스 정의가 있는 파일입니다.infra
프로젝트를 프로비전하고 Azure에 배포할 코드로서의 인프라 파일이 있는 폴더입니다..azure
파일에 환경 변수가 설정된 폴더입니다.env
.
이 검색 및 생성 프로세스에 대한 자세한 내용은 이 문서의 뒷부분에서 제공합니다.
생성된 파일은 제공된 샘플 앱에 대해 그대로 작동하며 사용자 고유의 앱에도 사용할 수 있습니다. 필요한 경우 생성된 파일을 필요에 맞게 수정할 수 있습니다. 예를 들어 앱이 식별된 리소스를 초과하는 Azure 리소스를 사용하는 경우 폴더에서
infra
코드로서의 인프라 파일을 추가로 수정해야 할azd
수 있습니다.azd up
명령을 실행하여 Azure에 앱을 프로비전하고 배포합니다.azd up
메시지가 표시되면 원하는 구독 및 위치를 선택하여 프로비전 및 배포 프로세스를 시작합니다.
프로세스가 완료되면 출력의 링크를
azd
클릭하여 브라우저에서 앱을 엽니다.
초기화 단계 살펴보기
현재 디렉터리 워크플로 azd init
에서 코드 사용을 선택하면 이 명령은 프로젝트를 분석하고 검색된 내용에 따라 코드를 자동으로 생성합니다. 아래 섹션에서는 이 프로세스의 작동 방식과 현재 지원되는 기술에 대한 세부 정보를 설명합니다.
감지
이 azd init
명령은 프로젝트 디렉터리 및 하위 디렉터리에 있는 지원되는 언어에 대한 프로젝트 파일을 검색합니다. azd
또한 패키지 종속성을 검색하여 앱에서 사용하는 웹 프레임워크 또는 데이터베이스에 대한 정보를 수집합니다. 필요한 경우 확인 요약 프롬프트에 표시된 대로 검색된 구성 요소를 수동으로 추가하거나 편집할 수 있습니다.
현재 검색 논리는 다음과 같습니다.
- 지원되는 언어:
- Python
- JavaScript/TypeScript
- .NET
- Java
- 지원되는 데이터베이스:
- MongoDB
- PostgreSQL
- Python 및 JavaScript/TypeScript의 경우 웹 프레임워크 및 데이터베이스가 자동으로 검색됩니다.
- JavaScript/TypeScript 프로젝트에서 프런트 엔드(또는 클라이언트 쪽) 웹 프레임워크를 사용하는 경우 프런트 엔드 서비스로 분류됩니다. 서비스에서 현재 검색되지 않은 프런트 엔드 웹 프레임워크를 사용하는 경우 JQuery를 선택하여 동등한 프런트 엔드 서비스 분류 및 동작을 제공할 수 있습니다.
Generation
검색된 구성 요소를 azd init
확인한 후 Azure에 애플리케이션을 배포하는 데 필요한 코드로서의 인프라 파일을 생성합니다.
생성 논리는 다음과 같습니다.
- 지원되는 호스트:
- Azure Container Apps
- 데이터베이스의 경우 데이터베이스 기술과 서비스 간에 지원되는 매핑이 사용됩니다.
- MongoDB: Azure CosmosDB API for MongoDB
- PostgreSQL: Azure Database for PostgreSQL 유연한 서버
- Redis: Azure Container Apps Redis 추가 기능
- 데이터베이스를 사용하는 서비스에는 기본적으로 미리 구성된 데이터베이스에 대한 연결을 제공하는 환경 변수가 있습니다.
- 프런트 엔드 및 백 엔드 서비스가 모두 검색되면 백 엔드 서비스에 대한 Azure 호스트의 CORS 구성이 업데이트되어 프런트 엔드 서비스의 기본 호스팅을 허용합니다기본. 코드 구성 파일로 인프라에서 필요에 따라 수정하거나 제거할 수 있습니다.
개발 컨테이너에 대한 지원 추가
템플릿을 개발 컨테이너 및 Codespaces와 호환되도록 만들 수도 있습니다. 개발 컨테이너를 사용하면 컨테이너를 완전한 기능을 갖춘 개발 환경으로 사용할 수 있습니다. 애플리케이션을 실행하고, 코드베이스 작업에 필요한 도구, 라이브러리 또는 런타임을 분리하고, 지속적인 통합 및 테스트를 지원하는 데 사용할 수 있습니다. 개발 컨테이너는 프라이빗 또는 퍼블릭 클라우드에서 로컬 또는 원격으로 실행할 수 있습니다. (원본: https://containers.dev/)
개발 컨테이너에 대한 지원을 추가하려면 다음을 수행합니다.
프로젝트의 루트에 .devcontainer 폴더를 만듭니다.
원하는 구성을
.devcontainer
사용하여devcontainer.json
폴더 내부에 파일을 만듭니다. 시작 템플릿은azd
프로젝트에 복사하고 필요에 따라 수정할 수 있는 샘플devcontainer.json
파일을 제공합니다.
Visual Studio Code 설명서에서 개발 컨테이너 작업에 대해 자세히 알아보세요.
CI/CD 파이프라인에 대한 지원 추가
다음 단계를 사용하여 GitHub 작업 또는 Azure DevOps를 사용하여 템플릿에서 CI/CD에 대한 지원을 추가할 수도 있습니다.
.github
GitHub 작업에 대한 폴더 또는.ado
Azure DevOps용 폴더를 프로젝트의 루트에 추가합니다.새 폴더에 워크플로 파일을 추가합니다. 시작 템플릿은
azd
프로젝트에 복사하고 필요에 따라 수정할 수 있는 각 플랫폼에 대해 샘플 GitHub Actions 워크플로 파일 및 샘플 Azure DevOps Pipelines 파일을 제공합니다.워크플로를
main.parameters.json
실행하는 데 필요한 환경 변수를 사용하여 폴더의 파일을infra
업데이트해야 할 수도 있습니다.
CI/CD 파이프라인 구성
템플릿에 GitHub Actions 또는 Azure Pipelines에 대한 지원이 포함된 경우 다음 단계를 사용하여 CI/CD 파이프라인을 구성할 수 있습니다.
다음 명령을 실행하여 리포지토리에 업데이트를 푸시합니다. 업데이트로 인해 GitHub Actions 워크플로가 트리거됩니다.
azd pipeline config
브라우저를 사용하여 프로젝트의 GitHub 리포지토리로 이동합니다.
작업을 선택하여 실행 중인 워크플로를 확인합니다 .
리소스 정리
이 문서에서 만든 리소스가 더 이상 필요하지 않은 경우 다음 명령을 실행합니다.
azd down
참고 항목
- Bicep 파일 작업에 대한 소개를 위해 Visual Studio Code 를 사용하여 Bicep 파일을 만듭니다.
- Bicep 샘플
- ARM 템플릿(Azure Resource Manager 템플릿)을 Bicep으로 디컴파일하는 방법
- Azure Developer CLI의 azure.yaml 스키마
도움말 요청
버그를 제출하거나, 도움말을 요청하거나, Azure 개발자 CLI에 대한 새 기능을 제안하는 방법에 대한 자세한 내용은 문제 해결 및 지원 페이지를 참조하세요.
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기