Azure SQL Databaseのバックアップ:ファイル出力

ストレージアクセスキーで出力
7つの引数が必要.

  • SQLサーバの管理者名
  • SQLサーバの管理者パスワード
  • バックアップ元のDB名
  • リソースグループ名
  • SQLサーバ名
  • ストレージのURL(出力先のファイル名を含む)
  • ストレージのアクセスキー
az sql db export --admin-password ${db-admin-password} `
                 --admin-user ${db-admin-user} `
                 --name ${origin_db} `
                 --resource-group ${resource-group} `
                 --server ${myserver} `
                 --storage-key-type StorageAccessKey `
                 --storage-uri ${storage-uri} `
                 --storage-key ${storage-key}

ストレージ関係を省略化してみる(同じサブスクリプションを利用している前提)
storage-keyの取得key1取得する

#ストレージアカウント
${storage-acccount} = ""
#リソースグループ
${resource-group} = ""
#アクセスキーのリストからkey1取得する
az storage account keys list -g ${resource-group} -n ${storage-acccount} --query "[?keyName=='key1'].value|[0]"
'''
ストレージのアクセスキーが減って、ストレージのアカウント名が増えた。  

ストレージのURL(出力先のファイル名を含む)は、
blobサービスのエンドポイントとブロブのコンテナとフィル名の3つで構成されている。  
blobサービスのエンドポイント

'''
#URIのドメイン部分を取得
az storage account show -g ${resource-group} -n ${storage-acccount} --query "primaryEndpoints.blob"
#実行結果は結局:"https://${storage-acccount}.blob.core.windows.net/"
'''


'''
#SQLサーバ名
 ${myserver} =""
#SQLサーバの管理者名
${db-admin-user}=""
#SQLサーバの管理者パスワード
${db-admin-password} =""
#バックアップ元のDB名
${origin_db} =""

#リソースグループ名
${resource-group}=""

#バックアップ先(AzureStorage)
#アカウント
${storage-acccount}=""
#コンテナ
${container-name} =""
#バックアップ先のファイル名
${file} = ""


#ストレージのURL(出力先のファイル名を含む)
${Endpoint} = az storage account show -g ${resource-group} -n ${storage-acccount} --query "primaryEndpoints.blob"
${storage-uri} = ${Endpoint}+${container-name}+"/"+${file}
#ストレージのアクセスキー
${storage-key} = az storage account keys list -g ${resource-group} -n ${storage-acccount} --query "[?keyName=='key1'].value | [0]"


#DBバックアップ実行
az sql db export --admin-password ${db-admin-password} `
                 --admin-user ${db-admin-user} `
                 --name ${origin_db} `
                 --resource-group ${resource-group} `
                 --server ${myserver} `
                 --storage-key-type StorageAccessKey `
                 --storage-uri ${storage-uri} `
                 --storage-key ${storage-key}