Azure Database for MySQL - 유연한 서버에 대한 Azure Pipelines
Azure Pipelines를 사용하여 빌드가 성공할 때마다 Azure Database for MySQL 유연한 서버에 데이터베이스 업데이트를 자동으로 배포할 수 있습니다. Azure CLI 작업을 사용해서 데이터베이스에 대해 SQL 파일 또는 인라인 SQL 스크립트로 데이터베이스를 업데이트할 수 있습니다. 이 작업은 Linux, macOS 또는 Windows 운영 체제에서 실행되는 플랫폼 간 에이전트에서 실행할 수 있습니다.
필수 조건
Azure 계정. 계정이 없으면 체험 계정을 얻습니다.
Azure 계정에 대한 Azure Resource Manager 서비스 연결
Microsoft 호스팅 에이전트에 Azure CLI가 미리 설치되어 있어야 합니다. 하지만 프라이빗 에이전트를 사용하는 경우 빌드 및 릴리스 에이전트를 실행하는 컴퓨터에 Azure CLI를 설치합니다. 에이전트가 Azure CLI가 설치된 컴퓨터에서 이미 실행되고 있으면 모든 관련 스테이지 변수가 업데이트되도록 에이전트를 다시 시작합니다.
이 빠른 시작에서는 다음과 같은 가이드 중 하나에서 만들어진 리소스를 시작 지점으로 사용합니다.
- 빠른 시작을 사용하여 Azure Database for MySQL 유연한 서버 인스턴스를 만듭니다. Azure Portal 또는 빠른 시작을 사용하여 Azure Database for MySQL 인스턴스 만들기: Azure CLI를 사용하여 Azure Database for MySQL - 유연한 서버의 인스턴스를 만듭니다.
SQL 파일 사용
다음 예제에서는 데이터베이스 인수를 전달하고 execute
명령어를 실행하는 방법을 보여줍니다.
- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: <Name of the Azure Resource Manager service connection>
scriptLocation: inlineScript
arguments:
-SERVERNAME mydemoserver `
-DBNAME pollsdb `
-DBUSER pollsdbuser`
-DBPASSWORD pollsdbpassword
inlineScript: |
az login --allow-no-subscription
az mysql flexible-server execute --name $(SERVERNAME) \
--admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
--database-name $(DBNAME) \
--file-path /code/sql/db-schema-update.sql
인라인 SQL 스크립트 사용
다음 예제에서는 execute
명령어를 사용하여 인라인 SQL 스크립트를 실행하는 방법을 보여줍니다.
- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: <Name of the Azure Resource Manager service connection>
scriptLocation: inlineScript
arguments:
-SERVERNAME mydemoserver `
-DBNAME pollsdb `
-DBUSER pollsdbuser`
-DBPASSWORD pollsdbpassword
-INLINESCRIPT
inlineScript: |
az login --allow-no-subscription
az mysql flexible-server execute --name $(SERVERNAME) \
--admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
--database-name $(DBNAME) \
--query-text "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;"
작업 입력
Azure Pipelines에서 Azure CLI 작업을 사용할 때 모든 작업 입력의 전체 목록을 볼 수 있습니다.
매개 변수 | 설명 |
---|---|
azureSubscription | (필수) 배포에 대한 Azure Resource Manager 구독을 제공합니다. 이 매개 변수는 선택한 작업 버전이 0.*일 때만 표시됩니다. Azure CLI 작업 v1.0은 Azure Resource Manager 구독만 지원합니다. |
scriptType | (필수) 스크립트 유형을 제공합니다. 지원되는 스크립트는 PowerShell, PowerShell Core, Bat, 셸 및 스크립트입니다. Linux 에이전트에서 실행할 때 bash 또는 pscore 중 하나를 선택합니다. Windows 에이전트를 실행할 때 batch , ps 및 pscore 중 하나를 선택합니다. |
scriptLocation | (필수) 실제 파일 경로와 같은 스크립트 경로를 제공하거나 스크립트 인라인을 제공하는 경우 Inline script 를 사용합니다. 기본값은 scriptPath 입니다. |
scriptPath | (필수) 스크립트의 정규화된 경로(Windows 기반 에이전트를 사용하는 경우에는 .ps1, .bat 또는 .cmd, Linux 기반 에이전트를 사용하는 경우에는 .ps1 또는 .sh ) 또는 기본 작업 디렉터리에 상대적인 경로입니다. |
inlineScript | (필수) 여기에서 스크립트를 인라인으로 작성할 수 있습니다. Windows 에이전트를 사용할 때는 PowerShell 또는 PowerShell Core 또는 일괄 처리 스크립팅을 사용하고, Linux 기반 에이전트를 사용할 때는 PowerShell Core 또는 셸 스크립팅을 사용합니다. 일괄 처리 파일의 경우 모든 Azure 명령 앞에 ‘call’ 접두사를 사용합니다. 또한 인수를 사용해서 이 스크립트로 사전 정의된 및 사용자 정의 변수를 전달할 수 있습니다. PowerShell/PowerShellCore/셸 예제: az --version az account show 일괄 처리 예제: call az --version call az account show . |
arguments | (선택 사항) 스크립트에 전달되는 모든 인수를 제공합니다. 예를 들면 -SERVERNAME mydemoserver 입니다. |
powerShellErrorActionPreference | (선택 사항) PowerShell/PowerShell Core 스크립트 위에서 $ErrorActionPreference = 'VALUE' 줄을 앞에 추가합니다. 기본값은 stop입니다. 지원되는 값은 stop, continue 및 silentlyContinue입니다. |
addSpnToEnvironment | (선택 사항) 선택한 Azure 엔드포인트의 서비스 주체 ID 및 키를 스크립트의 실행 환경에 추가합니다. 스크립트에서 $env:servicePrincipalId, $env:servicePrincipalKey 및 $env:tenantId 변수를 사용할 수 있습니다. 이것은 Azure 엔드포인트에 서비스 주체 인증 체계가 있는 경우에만 적용됩니다. 기본값은 false입니다. |
useGlobalConfig | (선택 사항) false이면 이 작업은 별도의 Azure CLI 구성 디렉터리Azure CLI 구성 디렉터리를 사용합니다. 병렬 릴리스에서 Azure CLI 작업을 실행하는 데 사용할 수 있습니다." 기본값: false |
workingDirectory | (선택 사항) 스크립트가 실행되는 현재 작업 디렉터리입니다. Empty는 $(System.DefaultWorkingDirectory)에 해당하는 리포지토리(빌드) 또는 아티팩트(릴리스)의 루트입니다. |
failOnStandardError | (선택 사항) true이면 오류가 StandardError 스트림에 기록될 때 이 작업이 실패합니다. 표준 오류를 무시하고 종료 코드를 사용하여 상태를 확인하려면 확인란을 선책 취소합니다. 기본값은 false입니다. |
powerShellIgnoreLASTEXITCODE | (선택 사항) false이면 스크립트 끝에 if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } 줄이 추가됩니다. 이렇게 하면 외부 명령의 마지막 종료 코드가 PowerShell의 종료 코드로 전파됩니다. 그렇지 않으면 줄이 스크립트 끝에 추가되지 않습니다. 기본값은 false입니다. |
CLI 작업 문제가 있으면 빌드 및 릴리스 문제 해결 방법을 참조하세요. |