다음을 통해 공유


Microsoft. Sql servers/databases 2020-08-01-preview

Bicep 자원 정의

서버/데이터베이스 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft를 만드는 것. Sql/서버/데이터베이스 리소스, 템플릿에 다음 Bicep을 추가하세요.

resource symbolicname 'Microsoft.Sql/servers/databases@2020-08-01-preview' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  properties: {
    autoPauseDelay: int
    catalogCollation: 'string'
    collation: 'string'
    createMode: 'string'
    elasticPoolId: 'string'
    highAvailabilityReplicaCount: int
    licenseType: 'string'
    longTermRetentionBackupResourceId: 'string'
    maintenanceConfigurationId: 'string'
    maxSizeBytes: int
    minCapacity: int
    readScale: 'string'
    recoverableDatabaseId: 'string'
    recoveryServicesRecoveryPointId: 'string'
    restorableDroppedDatabaseId: 'string'
    restorePointInTime: 'string'
    sampleName: 'string'
    secondaryType: 'string'
    sourceDatabaseDeletionDate: 'string'
    sourceDatabaseId: 'string'
    storageAccountType: 'string'
    zoneRedundant: bool
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

속성 값

Microsoft. SQL/서버/데이터베이스

Name Description Value
location 리소스 위치입니다. string(필수)
name 리소스 이름 string(필수)
parent Bicep에서는 자식 리소스의 부모 리소스를 지정할 수 있습니다. 자식 리소스가 부모 리소스 외부에서 선언된 경우에만 이 속성을 추가해야 합니다.

자세한 내용은 부모 리소스외부의 자식 리소스 참조하세요.
형식 리소스의 기호 이름: 서버
properties 리소스 속성입니다. DatabaseProperties
sku 데이터베이스 SKU입니다.

SKU 목록은 지역 및 지원 제품에 따라 다를 수 있습니다. Azure 지역에서 구독에 이용 가능한 SKU(SKU 이름, 티어/에디션, 패밀리, 용량 포함)를 확인하려면 Capabilities_ListByLocation REST API 또는 다음 명령어 중 하나를 사용하세요:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />파워쉘
<Get-AzSqlServerServiceObjective -Location 위치>
````
Sku
tags 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.

DatabaseProperties

Name Description Value
autoPauseDelay 데이터베이스가 자동으로 일시 중지된 시간(분)입니다. -1 값은 자동 일시 중지를 사용하지 않도록 설정됨을 의미합니다. int
catalogCollation 메타데이터 카탈로그의 데이터 정렬입니다. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation 데이터베이스의 데이터 정렬입니다. string
createMode 데이터베이스 만들기 모드를 지정합니다.

기본값: 일반 데이터베이스 만들기.

복사: 기존 데이터베이스의 복사본으로 데이터베이스를 만듭니다. sourceDatabaseId는 원본 데이터베이스의 리소스 ID로 지정해야 합니다.

보조: 기존 데이터베이스의 보조 복제본으로 데이터베이스를 만듭니다. sourceDatabaseId는 기존 주 데이터베이스의 리소스 ID로 지정해야 합니다.

PointInTimeRestore: 기존 데이터베이스의 특정 시점 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId는 기존 데이터베이스의 리소스 ID로 지정해야 하며 restorePointInTime을 지정해야 합니다.

복구: 지역에서 복제된 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId는 복원할 복구 가능한 데이터베이스 리소스 ID로 지정해야 합니다.

복원: 삭제된 데이터베이스의 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId를 지정해야 합니다. sourceDatabaseId가 데이터베이스의 원래 리소스 ID인 경우 sourceDatabaseDeletionDate를 지정해야 합니다. 그렇지 않으면 sourceDatabaseId는 복원 가능한 삭제된 데이터베이스 리소스 ID여야 하며 sourceDatabaseDeletionDate는 무시됩니다. restorePointInTime은 이전 시점부터 복원하도록 지정할 수도 있습니다.

RestoreLongTermRetentionBackup: 장기 보존 자격 증명 모음에서 복원하여 데이터베이스를 만듭니다. recoveryServicesRecoveryPointResourceId는 복구 지점 리소스 ID로 지정해야 합니다.

DataWarehouse 버전에서는 Copy, Secondary 및 RestoreLongTermRetentionBackup이 지원되지 않습니다.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId 이 데이터베이스를 포함하는 탄력적 풀의 리소스 식별자입니다. string
highAvailabilityReplicaCount 고가용성을 제공하는 데 사용되는 데이터베이스와 연결된 보조 복제본의 수입니다. int
licenseType 이 데이터베이스에 적용할 라이선스 유형입니다. 면허가 필요하면 LicenseIncluded, 면허가 있고 Azure 하이브리드 혜택 자격이 있다면 BasePrice입니다. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId 이 데이터베이스의 만들기 작업과 관련된 장기 보존 백업의 리소스 식별자입니다. string
maintenanceConfigurationId 데이터베이스에 할당된 유지 관리 구성 ID입니다. 이 구성은 유지 관리 업데이트가 발생하는 기간을 정의합니다. string
maxSizeBytes 바이트로 표현된 데이터베이스의 최대 크기입니다. int
minCapacity 데이터베이스가 항상 할당하는 최소 용량(일시 중지되지 않은 경우) int
readScale 읽기 전용 라우팅의 상태입니다. 활성화된 경우, 애플리케이션 의도가 연결 문자열에서 읽기 전용으로 설정된 연결은 동일한 영역 내의 읽기 전용 보조 복제본으로 라우팅될 수 있습니다. 'Disabled'
'Enabled'
recoverableDatabaseId 이 데이터베이스의 만들기 작업과 연결된 복구 가능한 데이터베이스의 리소스 식별자입니다. string
recoveryServicesRecoveryPointId 이 데이터베이스의 만들기 작업과 연결된 복구 지점의 리소스 식별자입니다. string
restorableDroppedDatabaseId 이 데이터베이스의 만들기 작업과 연결된 복원 가능한 삭제된 데이터베이스의 리소스 식별자입니다. string
restorePointInTime 새 데이터베이스를 만들기 위해 복원할 원본 데이터베이스의 지정 시간(ISO8601 형식)을 지정합니다. string
sampleName 이 데이터베이스를 만들 때 적용할 샘플 스키마의 이름입니다. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType 보조 데이터베이스인 경우 데이터베이스의 보조 형식입니다. 유효한 값은 Geo 및 Named입니다. 'Geo'
'Named'
sourceDatabaseDeletionDate 데이터베이스가 삭제된 시간을 지정합니다. string
sourceDatabaseId 이 데이터베이스의 만들기 작업과 연결된 원본 데이터베이스의 리소스 식별자입니다. string
storageAccountType 이 데이터베이스에 대한 백업을 저장하는 데 사용되는 스토리지 계정 유형입니다. 'GRS'
'LRS'
'ZRS'
zoneRedundant 이 데이터베이스가 영역 중복인지 여부입니다. 즉, 이 데이터베이스의 복제본이 여러 가용성 영역에 분산됩니다. bool

Sku

Name Description Value
capacity 특정 SKU의 용량입니다. int
family 서비스에 여러 세대의 하드웨어가 있는 경우 동일한 SKU에 대해 여기에서 캡처할 수 있습니다. string
name SKU의 이름(일반적으로 문자 + 숫자 코드(예: P3)입니다. string(필수)
size 특정 SKU의 크기 string
tier 특정 SKU의 계층 또는 버전(예: Basic, Premium)입니다. string

TrackedResourceTags

Name Description Value

사용 예제

Bicep 샘플

MS SQL Database 배포의 기본 예입니다.

param resourceName string = 'acctest0001'
param location string = 'westeurope'
@secure()
@description('The administrator login password for the SQL server')
param administratorLoginPassword string

resource server 'Microsoft.Sql/servers@2021-02-01-preview' = {
  name: resourceName
  location: location
  properties: {
    administratorLogin: 'mradministrator'
    administratorLoginPassword: null
    minimalTlsVersion: '1.2'
    publicNetworkAccess: 'Enabled'
    restrictOutboundNetworkAccess: 'Disabled'
    version: '12.0'
  }
}

resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = {
  parent: server
  name: resourceName
  location: location
  properties: {
    autoPauseDelay: 0
    createMode: 'Default'
    elasticPoolId: ''
    highAvailabilityReplicaCount: 0
    isLedgerOn: false
    licenseType: 'LicenseIncluded'
    maintenanceConfigurationId: resourceId('Microsoft.Maintenance/publicMaintenanceConfigurations', 'SQL_Default')
    minCapacity: 0
    readScale: 'Disabled'
    requestedBackupStorageRedundancy: 'Geo'
    zoneRedundant: false
  }
}

Azure verified modules

다음 Azure 검증된 모듈 이 자원 유형을 배포하는 데 사용할 수 있습니다.

모듈 Description
Azure SQL Database AVM Resource Module for Azure SQL Database

Azure Quickstart Samples

다음 Azure 퀵스타트 템플릿에는 이 리소스 유형을 배포하기 위한 Bicep 샘플이 포함되어 있습니다.

Bicep 파일 Description
Azure SQL Server 감사는 Log Analytics 이 템플릿은 감사가 활성화된 Azure SQL 서버를 배포하여 Log Analytics(OMS workspace)에 감사 로그를 작성할 수 있게 해줍니다
SQL Server 및 데이터베이스 생성 이 템플릿을 사용하면 SQL Database 및 서버를 만들 수 있습니다.
투명 암호화가 적용된 전용 SQL 풀 SQL Server와 전용 SQL 풀(이전 명칭: SQL DW)을 생성하여 투명한 데이터 암호화을 지원합니다.
Azure 아키텍처 ADLS Gen 2가 활성화된 Azure 스토리지 계정을 생성하고, 스토리지 계정과 연결된 서비스가 있는 Azure Data Factory 인스턴스(배포 시 Azure SQL Database 포함), 그리고 Azure Databricks 인스턴스를 생성합니다. 템플릿을 배포하는 사용자의 AAD ID와 ADF 인스턴스의 관리 ID에는 스토리지 계정에 대한 Storage Blob 데이터 기여자 역할이 부여됩니다. 또한 Azure Key Vault 인스턴스, Azure SQL Database, 스트리밍 사용 사례용 Azure Event Hub를 배포하는 옵션도 있습니다. Azure Key Vault가 배포되면, 템플릿을 배포하는 사용자의 데이터 팩토리 관리 신원과 AAD 신원에 Key Vault Secrets 사용자 역할이 부여됩니다.
프라이빗 엔드포인트 예시 이 템플릿은 Azure SQL Server를 가리키는 개인 엔드포인트를 만드는 방법을 보여줍니다
SQL 데이터베이스로 웹 앱 프로비저닝 이 템플릿은 웹앱, SQL Database, 자동 크기 조정 설정, 경고 규칙 및 App Insights를 프로비전합니다. 웹 앱에서 데이터베이스용 연결 문자열을 구성합니다.
Sonarqube Docker Web App on Linux with Azure SQL 이 템플릿은 공식 Sonarqube 이미지를 사용해 Azure App Service 웹 앱 Linux 컨테이너에 Sonarqube를 배포하고 Azure SQL Server로 백업합니다.
웹 앱, 관리 신원, SQL Server 및 ΑΙ 앱 + 데이터 + 관리 신원 + 모니터링을 위한 Azure 인프라를 배포하는 간단한 예시입니다

ARM 템플릿 리소스 정의

서버/데이터베이스 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft를 만드는 것. SQL/서버/데이터베이스 리소스, 템플릿에 다음 JSON 파일을 추가하세요.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2020-08-01-preview",
  "name": "string",
  "location": "string",
  "properties": {
    "autoPauseDelay": "int",
    "catalogCollation": "string",
    "collation": "string",
    "createMode": "string",
    "elasticPoolId": "string",
    "highAvailabilityReplicaCount": "int",
    "licenseType": "string",
    "longTermRetentionBackupResourceId": "string",
    "maintenanceConfigurationId": "string",
    "maxSizeBytes": "int",
    "minCapacity": "int",
    "readScale": "string",
    "recoverableDatabaseId": "string",
    "recoveryServicesRecoveryPointId": "string",
    "restorableDroppedDatabaseId": "string",
    "restorePointInTime": "string",
    "sampleName": "string",
    "secondaryType": "string",
    "sourceDatabaseDeletionDate": "string",
    "sourceDatabaseId": "string",
    "storageAccountType": "string",
    "zoneRedundant": "bool"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

속성 값

Microsoft. SQL/서버/데이터베이스

Name Description Value
apiVersion api 버전 '2020-08-01-preview'
location 리소스 위치입니다. string(필수)
name 리소스 이름 string(필수)
properties 리소스 속성입니다. DatabaseProperties
sku 데이터베이스 SKU입니다.

SKU 목록은 지역 및 지원 제품에 따라 다를 수 있습니다. Azure 지역에서 구독에 이용 가능한 SKU(SKU 이름, 티어/에디션, 패밀리, 용량 포함)를 확인하려면 Capabilities_ListByLocation REST API 또는 다음 명령어 중 하나를 사용하세요:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />파워쉘
<Get-AzSqlServerServiceObjective -Location 위치>
````
Sku
tags 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.
type 리소스 종류 'Microsoft. SQL/서버/데이터베이스'

DatabaseProperties

Name Description Value
autoPauseDelay 데이터베이스가 자동으로 일시 중지된 시간(분)입니다. -1 값은 자동 일시 중지를 사용하지 않도록 설정됨을 의미합니다. int
catalogCollation 메타데이터 카탈로그의 데이터 정렬입니다. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation 데이터베이스의 데이터 정렬입니다. string
createMode 데이터베이스 만들기 모드를 지정합니다.

기본값: 일반 데이터베이스 만들기.

복사: 기존 데이터베이스의 복사본으로 데이터베이스를 만듭니다. sourceDatabaseId는 원본 데이터베이스의 리소스 ID로 지정해야 합니다.

보조: 기존 데이터베이스의 보조 복제본으로 데이터베이스를 만듭니다. sourceDatabaseId는 기존 주 데이터베이스의 리소스 ID로 지정해야 합니다.

PointInTimeRestore: 기존 데이터베이스의 특정 시점 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId는 기존 데이터베이스의 리소스 ID로 지정해야 하며 restorePointInTime을 지정해야 합니다.

복구: 지역에서 복제된 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId는 복원할 복구 가능한 데이터베이스 리소스 ID로 지정해야 합니다.

복원: 삭제된 데이터베이스의 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId를 지정해야 합니다. sourceDatabaseId가 데이터베이스의 원래 리소스 ID인 경우 sourceDatabaseDeletionDate를 지정해야 합니다. 그렇지 않으면 sourceDatabaseId는 복원 가능한 삭제된 데이터베이스 리소스 ID여야 하며 sourceDatabaseDeletionDate는 무시됩니다. restorePointInTime은 이전 시점부터 복원하도록 지정할 수도 있습니다.

RestoreLongTermRetentionBackup: 장기 보존 자격 증명 모음에서 복원하여 데이터베이스를 만듭니다. recoveryServicesRecoveryPointResourceId는 복구 지점 리소스 ID로 지정해야 합니다.

DataWarehouse 버전에서는 Copy, Secondary 및 RestoreLongTermRetentionBackup이 지원되지 않습니다.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId 이 데이터베이스를 포함하는 탄력적 풀의 리소스 식별자입니다. string
highAvailabilityReplicaCount 고가용성을 제공하는 데 사용되는 데이터베이스와 연결된 보조 복제본의 수입니다. int
licenseType 이 데이터베이스에 적용할 라이선스 유형입니다. 면허가 필요하면 LicenseIncluded, 면허가 있고 Azure 하이브리드 혜택 자격이 있다면 BasePrice입니다. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId 이 데이터베이스의 만들기 작업과 관련된 장기 보존 백업의 리소스 식별자입니다. string
maintenanceConfigurationId 데이터베이스에 할당된 유지 관리 구성 ID입니다. 이 구성은 유지 관리 업데이트가 발생하는 기간을 정의합니다. string
maxSizeBytes 바이트로 표현된 데이터베이스의 최대 크기입니다. int
minCapacity 데이터베이스가 항상 할당하는 최소 용량(일시 중지되지 않은 경우) int
readScale 읽기 전용 라우팅의 상태입니다. 활성화된 경우, 애플리케이션 의도가 연결 문자열에서 읽기 전용으로 설정된 연결은 동일한 영역 내의 읽기 전용 보조 복제본으로 라우팅될 수 있습니다. 'Disabled'
'Enabled'
recoverableDatabaseId 이 데이터베이스의 만들기 작업과 연결된 복구 가능한 데이터베이스의 리소스 식별자입니다. string
recoveryServicesRecoveryPointId 이 데이터베이스의 만들기 작업과 연결된 복구 지점의 리소스 식별자입니다. string
restorableDroppedDatabaseId 이 데이터베이스의 만들기 작업과 연결된 복원 가능한 삭제된 데이터베이스의 리소스 식별자입니다. string
restorePointInTime 새 데이터베이스를 만들기 위해 복원할 원본 데이터베이스의 지정 시간(ISO8601 형식)을 지정합니다. string
sampleName 이 데이터베이스를 만들 때 적용할 샘플 스키마의 이름입니다. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType 보조 데이터베이스인 경우 데이터베이스의 보조 형식입니다. 유효한 값은 Geo 및 Named입니다. 'Geo'
'Named'
sourceDatabaseDeletionDate 데이터베이스가 삭제된 시간을 지정합니다. string
sourceDatabaseId 이 데이터베이스의 만들기 작업과 연결된 원본 데이터베이스의 리소스 식별자입니다. string
storageAccountType 이 데이터베이스에 대한 백업을 저장하는 데 사용되는 스토리지 계정 유형입니다. 'GRS'
'LRS'
'ZRS'
zoneRedundant 이 데이터베이스가 영역 중복인지 여부입니다. 즉, 이 데이터베이스의 복제본이 여러 가용성 영역에 분산됩니다. bool

Sku

Name Description Value
capacity 특정 SKU의 용량입니다. int
family 서비스에 여러 세대의 하드웨어가 있는 경우 동일한 SKU에 대해 여기에서 캡처할 수 있습니다. string
name SKU의 이름(일반적으로 문자 + 숫자 코드(예: P3)입니다. string(필수)
size 특정 SKU의 크기 string
tier 특정 SKU의 계층 또는 버전(예: Basic, Premium)입니다. string

TrackedResourceTags

Name Description Value

사용 예제

Azure Quickstart Templates

다음 Azure 퀵스타트 템플릿이 이 리소스 유형을 배포합니다.

Template Description
Azure SQL Server 감사는 Log Analytics

Azure
이 템플릿은 감사가 활성화된 Azure SQL 서버를 배포하여 Log Analytics(OMS workspace)에 감사 로그를 작성할 수 있게 해줍니다
SQL Server 및 데이터베이스 생성

Azure
이 템플릿을 사용하면 SQL Database 및 서버를 만들 수 있습니다.
투명 암호화가 적용된 전용 SQL 풀

Azure
SQL Server와 전용 SQL 풀(이전 명칭: SQL DW)을 생성하여 투명한 데이터 암호화을 지원합니다.
새로운 SQL Elastic Pool

Azure
이 템플릿을 통해 새로운 SQL Elastic Pool과 그에 새로 연관된 SQL Server, 그리고 할당할 새로운 SQL 데이터베이스를 배포할 수 있습니다.
Azure 아키텍처

Azure
ADLS Gen 2가 활성화된 Azure 스토리지 계정을 생성하고, 스토리지 계정과 연결된 서비스가 있는 Azure Data Factory 인스턴스(배포 시 Azure SQL Database 포함), 그리고 Azure Databricks 인스턴스를 생성합니다. 템플릿을 배포하는 사용자의 AAD ID와 ADF 인스턴스의 관리 ID에는 스토리지 계정에 대한 Storage Blob 데이터 기여자 역할이 부여됩니다. 또한 Azure Key Vault 인스턴스, Azure SQL Database, 스트리밍 사용 사례용 Azure Event Hub를 배포하는 옵션도 있습니다. Azure Key Vault가 배포되면, 템플릿을 배포하는 사용자의 데이터 팩토리 관리 신원과 AAD 신원에 Key Vault Secrets 사용자 역할이 부여됩니다.
HDInsight에서 VNET

Azure
이 템플릿을 사용하면 사용자 지정 Ambari DB 및 Hive Metastore 역할을 하는 새 SQL DB를 사용하여 기존 가상 네트워크에 HDInsight 클러스터를 만들 수 있습니다. 기존 SQL Sever, 스토리지 계정 및 VNET이 있어야 합니다.
프라이빗 엔드포인트 예시

Azure
이 템플릿은 Azure SQL Server를 가리키는 개인 엔드포인트를 만드는 방법을 보여줍니다
SQL 데이터베이스로 웹 앱 프로비저닝

Azure
이 템플릿은 웹앱, SQL Database, 자동 크기 조정 설정, 경고 규칙 및 App Insights를 프로비전합니다. 웹 앱에서 데이터베이스용 연결 문자열을 구성합니다.
원격 데스크톱 고가용성 서비스

Azure
이 ARM 템플릿 샘플 코드는 고가용성으로 원격 데스크톱 Services 2019 세션 컬렉션 랩을 배포할 것입니다. 목표는 Windows Server 2019를 사용하여 완전 중복되고 고가용성 솔루션인 원격 데스크톱 서비스를 배포하는 것입니다.
Sonarqube Docker Web App on Linux with Azure SQL

Azure
이 템플릿은 공식 Sonarqube 이미지를 사용해 Azure App Service 웹 앱 Linux 컨테이너에 Sonarqube를 배포하고 Azure SQL Server로 백업합니다.
웹 앱, 관리 신원, SQL Server 및 ΑΙ

Azure
앱 + 데이터 + 관리 신원 + 모니터링을 위한 Azure 인프라를 배포하는 간단한 예시입니다
WebApp이 Azure SQL 프라이빗 엔드포인트

Azure
이 템플릿은 Azure SQL Server를 가리키는 프라이비시 엔드포인트를 사용하는 웹 앱을 만드는 방법을 보여줍니다

Terraform(AzAPI 공급자) 리소스 정의

서버/데이터베이스 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

  • 리소스 그룹

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft를 만드는 것. SQL/서버/데이터베이스 리소스, 템플릿에 다음 Terraform을 추가하세요.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2020-08-01-preview"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      autoPauseDelay = int
      catalogCollation = "string"
      collation = "string"
      createMode = "string"
      elasticPoolId = "string"
      highAvailabilityReplicaCount = int
      licenseType = "string"
      longTermRetentionBackupResourceId = "string"
      maintenanceConfigurationId = "string"
      maxSizeBytes = int
      minCapacity = int
      readScale = "string"
      recoverableDatabaseId = "string"
      recoveryServicesRecoveryPointId = "string"
      restorableDroppedDatabaseId = "string"
      restorePointInTime = "string"
      sampleName = "string"
      secondaryType = "string"
      sourceDatabaseDeletionDate = "string"
      sourceDatabaseId = "string"
      storageAccountType = "string"
      zoneRedundant = bool
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "string"
    }
  }
}

속성 값

Microsoft. SQL/서버/데이터베이스

Name Description Value
location 리소스 위치입니다. string(필수)
name 리소스 이름 string(필수)
parent_id 이 리소스의 부모인 리소스의 ID입니다. 유형의 리소스에 대한 ID: 서버
properties 리소스 속성입니다. DatabaseProperties
sku 데이터베이스 SKU입니다.

SKU 목록은 지역 및 지원 제품에 따라 다를 수 있습니다. Azure 지역에서 구독에 이용 가능한 SKU(SKU 이름, 티어/에디션, 패밀리, 용량 포함)를 확인하려면 Capabilities_ListByLocation REST API 또는 다음 명령어 중 하나를 사용하세요:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />파워쉘
<Get-AzSqlServerServiceObjective -Location 위치>
````
Sku
tags 리소스 태그 태그 이름 및 값의 사전입니다.
type 리소스 종류 "Microsoft. Sql/servers/databases@2020-08-01-preview"

DatabaseProperties

Name Description Value
autoPauseDelay 데이터베이스가 자동으로 일시 중지된 시간(분)입니다. -1 값은 자동 일시 중지를 사용하지 않도록 설정됨을 의미합니다. int
catalogCollation 메타데이터 카탈로그의 데이터 정렬입니다. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation 데이터베이스의 데이터 정렬입니다. string
createMode 데이터베이스 만들기 모드를 지정합니다.

기본값: 일반 데이터베이스 만들기.

복사: 기존 데이터베이스의 복사본으로 데이터베이스를 만듭니다. sourceDatabaseId는 원본 데이터베이스의 리소스 ID로 지정해야 합니다.

보조: 기존 데이터베이스의 보조 복제본으로 데이터베이스를 만듭니다. sourceDatabaseId는 기존 주 데이터베이스의 리소스 ID로 지정해야 합니다.

PointInTimeRestore: 기존 데이터베이스의 특정 시점 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId는 기존 데이터베이스의 리소스 ID로 지정해야 하며 restorePointInTime을 지정해야 합니다.

복구: 지역에서 복제된 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId는 복원할 복구 가능한 데이터베이스 리소스 ID로 지정해야 합니다.

복원: 삭제된 데이터베이스의 백업을 복원하여 데이터베이스를 만듭니다. sourceDatabaseId를 지정해야 합니다. sourceDatabaseId가 데이터베이스의 원래 리소스 ID인 경우 sourceDatabaseDeletionDate를 지정해야 합니다. 그렇지 않으면 sourceDatabaseId는 복원 가능한 삭제된 데이터베이스 리소스 ID여야 하며 sourceDatabaseDeletionDate는 무시됩니다. restorePointInTime은 이전 시점부터 복원하도록 지정할 수도 있습니다.

RestoreLongTermRetentionBackup: 장기 보존 자격 증명 모음에서 복원하여 데이터베이스를 만듭니다. recoveryServicesRecoveryPointResourceId는 복구 지점 리소스 ID로 지정해야 합니다.

DataWarehouse 버전에서는 Copy, Secondary 및 RestoreLongTermRetentionBackup이 지원되지 않습니다.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId 이 데이터베이스를 포함하는 탄력적 풀의 리소스 식별자입니다. string
highAvailabilityReplicaCount 고가용성을 제공하는 데 사용되는 데이터베이스와 연결된 보조 복제본의 수입니다. int
licenseType 이 데이터베이스에 적용할 라이선스 유형입니다. 면허가 필요하면 LicenseIncluded, 면허가 있고 Azure 하이브리드 혜택 자격이 있다면 BasePrice입니다. 'BasePrice'
'LicenseIncluded'
longTermRetentionBackupResourceId 이 데이터베이스의 만들기 작업과 관련된 장기 보존 백업의 리소스 식별자입니다. string
maintenanceConfigurationId 데이터베이스에 할당된 유지 관리 구성 ID입니다. 이 구성은 유지 관리 업데이트가 발생하는 기간을 정의합니다. string
maxSizeBytes 바이트로 표현된 데이터베이스의 최대 크기입니다. int
minCapacity 데이터베이스가 항상 할당하는 최소 용량(일시 중지되지 않은 경우) int
readScale 읽기 전용 라우팅의 상태입니다. 활성화된 경우, 애플리케이션 의도가 연결 문자열에서 읽기 전용으로 설정된 연결은 동일한 영역 내의 읽기 전용 보조 복제본으로 라우팅될 수 있습니다. 'Disabled'
'Enabled'
recoverableDatabaseId 이 데이터베이스의 만들기 작업과 연결된 복구 가능한 데이터베이스의 리소스 식별자입니다. string
recoveryServicesRecoveryPointId 이 데이터베이스의 만들기 작업과 연결된 복구 지점의 리소스 식별자입니다. string
restorableDroppedDatabaseId 이 데이터베이스의 만들기 작업과 연결된 복원 가능한 삭제된 데이터베이스의 리소스 식별자입니다. string
restorePointInTime 새 데이터베이스를 만들기 위해 복원할 원본 데이터베이스의 지정 시간(ISO8601 형식)을 지정합니다. string
sampleName 이 데이터베이스를 만들 때 적용할 샘플 스키마의 이름입니다. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
secondaryType 보조 데이터베이스인 경우 데이터베이스의 보조 형식입니다. 유효한 값은 Geo 및 Named입니다. 'Geo'
'Named'
sourceDatabaseDeletionDate 데이터베이스가 삭제된 시간을 지정합니다. string
sourceDatabaseId 이 데이터베이스의 만들기 작업과 연결된 원본 데이터베이스의 리소스 식별자입니다. string
storageAccountType 이 데이터베이스에 대한 백업을 저장하는 데 사용되는 스토리지 계정 유형입니다. 'GRS'
'LRS'
'ZRS'
zoneRedundant 이 데이터베이스가 영역 중복인지 여부입니다. 즉, 이 데이터베이스의 복제본이 여러 가용성 영역에 분산됩니다. bool

Sku

Name Description Value
capacity 특정 SKU의 용량입니다. int
family 서비스에 여러 세대의 하드웨어가 있는 경우 동일한 SKU에 대해 여기에서 캡처할 수 있습니다. string
name SKU의 이름(일반적으로 문자 + 숫자 코드(예: P3)입니다. string(필수)
size 특정 SKU의 크기 string
tier 특정 SKU의 계층 또는 버전(예: Basic, Premium)입니다. string

TrackedResourceTags

Name Description Value

사용 예제

Terraform 샘플

MS SQL Database 배포의 기본 예입니다.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "administrator_login_password" {
  type        = string
  description = "The administrator login password for the SQL server"
  sensitive   = true
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2021-02-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "publicMaintenanceConfiguration" {
  type      = "Microsoft.Maintenance/publicMaintenanceConfigurations@2023-04-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = "SQL_Default"
}

resource "azapi_resource" "database" {
  type      = "Microsoft.Sql/servers/databases@2021-02-01-preview"
  parent_id = azapi_resource.server.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      autoPauseDelay                   = 0
      createMode                       = "Default"
      elasticPoolId                    = ""
      highAvailabilityReplicaCount     = 0
      isLedgerOn                       = false
      licenseType                      = "LicenseIncluded"
      maintenanceConfigurationId       = data.azapi_resource_id.publicMaintenanceConfiguration.id
      minCapacity                      = 0
      readScale                        = "Disabled"
      requestedBackupStorageRedundancy = "Geo"
      zoneRedundant                    = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

MS SQL Database 배포의 기본 예입니다.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "administrator_login_password" {
  type        = string
  description = "The administrator login password for the SQL server"
  sensitive   = true
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2021-02-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "publicMaintenanceConfiguration" {
  type      = "Microsoft.Maintenance/publicMaintenanceConfigurations@2023-04-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = "SQL_Default"
}

resource "azapi_resource" "database" {
  type      = "Microsoft.Sql/servers/databases@2021-02-01-preview"
  parent_id = azapi_resource.server.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      autoPauseDelay                   = 0
      createMode                       = "Default"
      elasticPoolId                    = ""
      highAvailabilityReplicaCount     = 0
      isLedgerOn                       = false
      licenseType                      = "LicenseIncluded"
      maintenanceConfigurationId       = data.azapi_resource_id.publicMaintenanceConfiguration.id
      minCapacity                      = 0
      readScale                        = "Disabled"
      requestedBackupStorageRedundancy = "Geo"
      zoneRedundant                    = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}