템플릿에 업데이트 적용

완료됨

초기 azd 프로비저닝 및 배포 프로세스는 Azure에서 앱을 시작하는 효과적인 방법입니다. 그러나 환경이 실행되면 앱 코드 또는 Azure 환경을 변경해야 수 있습니다.

azd 템플릿을 변경한 후 Azure 환경을 업데이트하는 데 사용할 수 있는 몇 가지 워크플로가 있습니다. 애플리케이션 코드 또는 인프라 파일을 변경했는지 여부에 관계없이, 언제든 azd up를 다시 실행하여 환경을 업데이트할 수 있습니다. azd up는 패키지가 실행될 때마다 패키지를 완료하고, 프로비전하고, 배포하기 때문에 모든 변경 내용이 Azure로 푸시되게 하는 간단한 방법입니다.

그러나 azd는 개발자 워크플로의 특정 단계에 매핑되는 보다 세분화된 명령도 제공합니다. 이러한 명령은 불필요한 검사나 변경되지 않은 단계를 건너뛰기 때문에 시간을 절약하는 효과도 있습니다.

  • azd deploy - 이 명령은 애플리케이션 소스 코드를 패키지하고 Azure에 다시 배포합니다. 그러나 Azure 리소스에 변경 내용을 적용하는 코드형 인프라 파일을 실행하지는 않습니다.

  • azd provision - 이 명령은 코드형 인프라 파일에 적용된 변경 내용에 따라 Azure 리소스를 만들거나 업데이트합니다. 예를 들어 azd provision을 Bicep 또는 Terraform 파일에 추가하면 Azure에서 새 스토리지 계정이 생성됩니다. 그러나 이 명령은 애플리케이션 소스 코드를 패키지하거나 다시 배포하지는 않습니다.

앱 코드 업데이트

팀에서 Todo 앱이 아닌 티켓 관리 앱을 빌드하고 있으므로, 그에 맞게 헤더 텍스트를 변경하려 합니다. 다음 단계를 완료하여 애플리케이션 코드를 업데이트하고 azd를 사용하여 변경 내용을 다시 배포합니다.

  1. 템플릿의 src/web/src/layout 디렉터리에서 header.tsx 파일을 찾습니다. Visual Studio Code를 사용하는 경우 ctrl + p 바로 가기를 사용하여 header.tsx 파일을 직접 검색할 수도 있습니다.

  2. 42줄 근처의 머리글 표시 텍스트를 Todo에서 Ticket Manager로 변경하고 변경 내용을 저장합니다.

    <Stack horizontal styles={logoStyles}>
        <FontIcon aria-label="Check" iconName="SkypeCircleCheck" className={logoIconClass} />
        <Text variant="xLarge">Ticket Manager</Text>
    </Stack>
    
  3. 디렉터리의 루트로 설정한 명령 프롬프트 창에서 azd deploy 명령을 실행합니다. azd에서 코드를 다시 배포할 때까지 잠시 기다립니다.

    azd deploy
    
  4. 명령이 완료되면 브라우저에서 앱을 다시 엽니다. 이제 머리글 왼쪽 위에 있는 텍스트가 티켓 관리자라고 표시될 것입니다.

Azure 리소스 업데이트

팀이 사용자가 티켓을 이용해 파일(예: 발생한 문제의 이미지 또는 스크린샷이나 기타 서비스 문서)을 업로드하는 기능을 추가할 계획입니다. 이러한 파일을 저장할 Azure Storage 계정을 환경에 추가하려 합니다. 또한 이 템플릿이 향후 환경에 프로비전될 때, 초기 설정 중에 스토리지 계정이 포함되어야 합니다. 다음 단계를 사용하면 템플릿의 코드형 인프라 파일을 수정하여 이러한 요구 사항을 충족할 수 있습니다.

  1. 템플릿 루트의 infra 폴더에서 main.bicep 파일을 엽니다.

  2. 템플릿에는 스토리지 계정 생성을 위한 재사용 가능한 Bicep 모듈이 이미 포함되어 있으므로, 이를 사용하여 사용자 계정을 추가할 수 있습니다. 출력 변수가 정의된 위의 줄 180 주위에서 main.bicep 파일 아래쪽에 다음 코드 조각을 붙여넣습니다.

    module storage './core/storage/storage-account.bicep' = {
      name: 'storage'
      scope: rg
      params: {
        name: '${abbrs.storageStorageAccounts}${resourceToken}'
        location: location
        tags: tags
      }
    }
    
  3. 변경 내용을 저장한 다음 azd provision 명령을 실행합니다. azd provision는 템플릿에 있는 코드형 인프라 파일을 이용해 Azure 환경을 업데이트하지만, 앱 소스 코드를 다시 배포하지는 않습니다.

    azd provision
    
  4. 명령이 완료되면 콘솔이 출력하는 URL에 따라 브라우저에서 Azure Portal을 시작합니다. 새 스토리지 계정을 포함한, 원래 프로비전된 모든 리소스를 저장하는 리소스 그룹이 표시됩니다.

    배포된 스토리지 계정을 보여 주는 스크린샷.

참고

azd로 작업할 때는 코드형 인프라 파일은 멱등성이라는 점을 유념해야 합니다. 실행 횟수에 관계없이 원하는 최종 상태가 계속 유지된다는 뜻입니다. Bicep 또는 Terraform은 환경이 인프라 파일의 상태와 일치하도록 Azure에 변경 내용을 적용하지만, 이미 원하는 상태와 일치하는 리소스에는 변경 내용이 적용되지 않습니다.