Azure Web App for Containers를 사용하여 데이터 API 개발
Azure Web App for Containers를 사용하여 데이터 API를 개발하면 최신 애플리케이션을 위한 강력하고 확장성 있는 솔루션을 얻을 수 있습니다. 컨테이너와 Azure 관리되는 서비스의 힘을 활용함으로써 개발자는 손쉽게 API를 빌드, 배포, 관리하여 성능과 안정성을 보장할 수 있습니다. 이러한 방식은 개발 프로세스를 간소화할 뿐만 아니라 애플리케이션의 이식성과 확장성을 향상시켜 오늘날의 최신 소프트웨어 환경에 이상적인 선택이 됩니다.
Web App for Containers 사용의 이점 살펴보기
이식성: 컨테이너는 애플리케이션과 해당 종속성을 캡슐화하여 다양한 환경에서 일관되게 실행되도록 보장합니다. 이렇게 하면 "내 컴퓨터에서는 작동" 문제가 해결되어 다양한 플랫폼에 대한 배포가 원활하게 이루어집니다.
확장성: Azure Web App for Containers를 사용하면 수요에 따라 자동으로 크기를 조정할 수 있습니다. 즉, 데이터 API는 수동 개입 없이 증가된 부하를 처리할 수 있어 고가용성과 성능이 보장됩니다.
간소화된 관리: Azure는 OS 패치, 부하 분산, 용량 프로비전을 비롯한 기본 인프라를 관리합니다. 이를 통해 개발자는 서버 관리가 아닌 코드 작성에 집중할 수 있습니다.
Azure Web App for Containers를 사용하여 데이터 API 빌드
Azure Web App for Containers를 사용하여 데이터 API를 빌드하려면 DAB 이미지로 컨테이너 앱을 만들고, 필요한 권한을 할당하고, Dockerfile을 설정하고, 새 이미지와 자격 증명으로 앱을 업데이트해야 합니다. 마지막으로 도메인 이름을 검색하고 API를 테스트합니다.
시작하기 전에 Azure 구독, 리소스 그룹 및 Azure Cloud Shell에 대한 액세스 권한이 있는지 확인합니다.
컨테이너 앱 만들기
다음 단계에 따라 Azure Container Apps를 만들 수 있습니다.
az containerapp env create를 사용하여 새 Azure 컨테이너 앱 환경을 만듭니다.az containerapp env create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CONTAINER_ENV_NAME \ --logs-destination none \ --location $LOCATIONaz containerapp createDAB 컨테이너 이미지를 사용하여 새 컨테이너 앱을 만들려면 명령을 사용합니다.az containerapp create \ --resource-group $RESOURCE_GROUP_NAME \ --environment $CONTAINER_ENV_NAME \ --name $API_CONTAINER_NAME \ --image "mcr.microsoft.com/azure-databases/data-api-builder" \ --ingress "external" \ --target-port "5000" \ --system-assigned
그런 다음 az identity show를 사용하여 관리 ID의 주체 식별자를 가져올 수 있습니다.
권한 할당
Azure SQL에서 데이터를 읽고 Azure Container Registry에서 데이터를 읽고 쓸 수 있는 시스템이 할당한 관리 ID 권한을 할당합니다.
az role assignment create \
--assignee $CURRENT_USER_PRINCIPAL_ID \
--role $ROLE_ID \
--scope $RESOURCE_GROUP_ID
Azure Container Registry 인스턴스 만들기
새 Azure Container Registry 인스턴스를 만들려면 다음 명령을 실행합니다.
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--name <CONTAINER_REGISTRY_NAME> \
--sku "Standard" \
--location <LOCATION> \
--admin-enabled false
컨테이너 이미지 빌드 및 배포
빌드 단계에서는 mcr.microsoft.com/dotnet/sdk 컨테이너 이미지를 사용합니다.
DAB CLI를 설치합니다.
RUN dotnet tool install Microsoft.DataApiBuilderRUN dotnet tool run dab -- init를 실행하여 원본 데이터베이스에 대한 Azure SQL Database 연결을 위한 구성 파일을 만듭니다.원본 데이터베이스의 테이블에 매핑할 엔터티를 만듭니다.
RUN dotnet tool run dab -- add Address --source "SalesLT.Address" --permissions "anonymous:read"구성 파일을 최종 mcr.microsoft.com/azure-databases/data-api-builder 컨테이너 이미지에 복사합니다.
az acr build를 실행하여 이미지를 빌드하여 Azure Container Registry 작업으로 이미지를 빌드합니다.컨테이너 레지스트리를 사용하도록 컨테이너 앱을 구성합니다.
az containerapp registry set \ --name <container-app-name> \ --resource-group <resource-group-name> \ --server <container-registry-login-server> \ --username <container-registry-username> \ --password <container-registry-password>Azure SQL 연결 문자열을 사용하여 비밀을 만듭니다.
az containerapp secret set \ --name <container-app-name> \ --resource-group <resource-group-name> \ --secrets "SQLConnectionString=<your-sql-connection-string>"새로운 사용자 지정 컨테이너 이미지와 연결 문자열로 컨테이너 앱을 업데이트합니다.
az containerapp update \ --name <container-app-name> \ --resource-group <resource-group-name> \ --image <container-registry-login-server>/<image-name>:<tag> \ --secrets "SQLConnectionString=<your-sql-connection-string>"컨테이너 앱의 정규화된 도메인 이름을 검색합니다.
az containerapp show \ --name <container-app-name> \ --resource-group <resource-group-name> \ --query "properties.configuration.ingress.fqdn" \ --output "tsv"
이러한 단계에서는 Azure 컨테이너 앱을 새로운 사용자 지정 컨테이너 이미지와 자격 증명으로 업데이트하고, 컨테이너 앱의 정규화된 도메인 이름을 검색합니다.
마지막으로 URL로 이동하여 API를 테스트하여 모든 것이 올바르게 작동하는지 확인합니다.
참고 항목
Azure CLI를 사용하여 Azure Container Apps에 데이터 API 작성기를 배포하는 방법에 대한 자세한 단계는 자습서를 참조하세요. Azure CLI를 사용하여 Azure Container Apps에 데이터 API 작성기를 배포합니다.