다음을 통해 공유


자습서: 서비스 커넥터를 사용하여 웹앱을 Azure App Configuration에 연결

다음 방법 중 하나를 사용하여 Azure App Service에서 실행되는 ASP.NET Core 앱을 Azure App Configuration에 연결하는 방법을 알아봅니다.

  • SMI(시스템 할당 관리 ID)
  • UMI(사용자 할당 관리 ID)
  • 서비스 사용자
  • Connection string

이 자습서에서는 Azure CLI를 사용하여 다음 작업을 완료합니다.

  • Azure 리소스 설정
  • 웹앱과 App Configuration 간의 연결 만들기
  • 앱을 빌드하고 Azure App Service에 배포합니다.

필수 조건

Azure에 로그인

Azure CLI에서 az login을 실행하여 Azure에 로그인합니다.

Azure 리소스 설정

Azure 리소스를 만드는 것부터 시작합니다.

  1. 다음 샘플 리포지토리를 복제합니다.

    git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
    
  2. Azure에 웹앱 배포

    다음 단계에 따라 App Service를 만들고 샘플 앱을 배포합니다. 구독 기여자 또는 소유자 역할이 있는지 확인합니다.

    앱 서비스를 만들고 시스템 할당 관리 ID를 사용하여 App Config와 상호 작용하는 샘플 앱을 배포합니다.

    # Change directory to the SMI sample
    cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
    
    # Create a web app
    
    LOCATION='eastus'
    RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
    APP_SERVICE_NAME='webapp-appconfig-smi'
    
    az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
    
    매개 변수 설명 예시
    위치 사용자에게 가까운 위치를 선택합니다. az account list-locations --output table을 사용하여 위치를 나열합니다. eastus
    리소스 그룹 이름 이 리소스 그룹을 사용하여 이 자습서를 완료하는 데 필요한 모든 Azure 리소스를 구성합니다. service-connector-tutorial-rg
    앱 서비스 이름 앱 서비스 이름은 Azure에서 리소스의 이름으로 사용되며 서버 엔드포인트 https://<app-service-name>.azurewebsites.com 형식으로 앱의 정규화된 도메인 이름을 형성합니다. 이 이름은 모든 Azure에서 고유해야 하며 허용되는 문자는 A-Z, 0-9-입니다. webapp-appconfig-smi
  3. Azure App Configuration 저장소 만들기

    APP_CONFIG_NAME='my-app-config'
    
    az appconfig create -g $RESOURCE_GROUP_NAME -n $APP_CONFIG_NAME --sku Free -l eastus
    
  4. 테스트 구성 파일을 Azure App Configuration으로 가져옵니다.

    시스템 할당 관리 ID를 사용하여 테스트 구성 파일을 Azure App Configuration으로 가져옵니다.

    1. ServiceConnectorSample 폴더로 cd

    2. ./sampleconfigs.json 테스트 구성 파일을 App Configuration 저장소로 가져옵니다. Cloud Shell을 사용하는 경우 명령을 실행하기 전에 sampleconfigs.json을 업로드합니다.

      az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
      

웹앱을 App Configuration에 연결

웹 애플리케이션과 App Configuration 저장소 간에 연결을 만듭니다.

시스템 할당 관리 ID 인증을 사용하여 웹 애플리케이션과 App Configuration 저장소 간에 연결을 만듭니다. 이 연결은 서비스 커넥터를 통해 이루어집니다.

az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity

system-identity는 SMI(시스템 할당 관리 ID) 인증 형식을 나타냅니다. 또한 서비스 커넥터는 사용자 할당 관리 ID(UMI), 연결 문자열(비밀) 및 서비스 주체와 같은 인증을 지원합니다.

연결 유효성 검사

  1. 연결이 작동하는지 확인하려면 브라우저에서 https://<myWebAppName>.azurewebsites.net/의 웹앱으로 이동합니다. 웹 사이트가 시작되면 "안녕하세요. 이제 Azure WebApp이 ServiceConnector를 통해 App Configuration에 연결되었습니다."

작동 방식

아래에서 각 인증 형식에 대해 뒤에서 관리하는 서비스 커넥터를 찾습니다.

서비스 커넥터는 다음과 같이 연결 구성을 관리합니다.

  • 애플리케이션이 웹앱에 액세스하고 App Configuration 엔드포인트를 가져올 수 있도록 웹앱의 AZURE_APPCONFIGURATION_ENDPOINT를 설정합니다. 샘플 코드에 액세스합니다.
  • 웹앱의 시스템 할당 관리 인증을 활성화하고 애플리케이션이 Azure.Identity의 DefaultAzureCredential을 사용하여 App Configuration에 인증할 수 있도록 App Configuration에 데이터 읽기 권한자 역할을 부여합니다. 샘플 코드에 액세스합니다.

자세한 내용은 서비스 커넥터 내부를 참조하세요.

테스트(선택 사항)

선택적으로 다음 테스트를 수행합니다.

  1. App Configuration Store에서 키 SampleApplication:Settings:Messages의 값을 업데이트합니다.

    az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
    
  2. https://<myWebAppName>.azurewebsites.net/으로 이동하여 Azure 웹앱으로 이동하고 페이지를 새로 고칩니다. 메시지가 "hello"로 업데이트된 것을 볼 수 있습니다.

리소스 정리

완료되면 이러한 Azure 리소스를 더 이상 사용하지 않으려면 az group delete 명령을 실행하여 삭제합니다. 이 명령은 리소스 그룹과 그 속에 포함된 모든 리소스를 삭제합니다.

az group delete -n <myResourceGroupName> --yes

다음 단계

서비스 커넥터에 대해 자세히 알아보려면 아래 나열된 자습서를 따르세요.