Partilhar via


Microsoft. Servidores/bases de dados SQL 2014-04-01

Definição de recurso Bicep

O tipo de recurso servidores/bancos de dados pode ser implantado com operações que visam:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte log de alterações.

Formato do recurso

Para criar uma Microsoft. Recurso SQL/servidores/bases de dados, adicione o seguinte Bicep ao seu modelo.

resource symbolicname 'Microsoft.Sql/servers/databases@2014-04-01' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  properties: {
    collation: 'string'
    createMode: 'string'
    edition: 'string'
    elasticPoolName: 'string'
    maxSizeBytes: 'string'
    readScale: 'string'
    recoveryServicesRecoveryPointResourceId: 'string'
    requestedServiceObjectiveId: 'string'
    requestedServiceObjectiveName: 'string'
    restorePointInTime: 'string'
    sampleName: 'string'
    sourceDatabaseDeletionDate: 'string'
    sourceDatabaseId: 'string'
    zoneRedundant: bool
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propriedade

Microsoft. SQL/servidores/bases de dados

Name Description Value
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
elemento principal No Bicep, podes especificar o recurso pai para um recurso filho. Você só precisa adicionar essa propriedade quando o recurso filho é declarado fora do recurso pai.

Para obter mais informações, consulte recurso filho fora do recurso pai.
Nome simbólico para recurso do tipo: servidores
properties As propriedades que representam o recurso. DatabaseProperties
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos

DatabaseProperties

| Nome | Descrição | Valor | | ---- | ----------- | ------------ | | agrupamento | O agrupamento do banco de dados. Se createMode não for Default, esse valor será ignorado. | string | | createMode | Especifica o modo de criação do banco de dados.

Padrão: criação regular de banco de dados.

Copiar: cria um banco de dados como uma cópia de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados de origem.

OnlineSecondary/NonReadableSecondary: cria um banco de dados como uma réplica secundária (legível ou ilegível) de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados primário existente.

PointInTimeRestore: Cria um banco de dados restaurando um backup point-in-time de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID de recurso do banco de dados existente e restorePointInTime deve ser especificado.

Recuperação: cria um banco de dados restaurando um backup replicado geograficamente. sourceDatabaseId deve ser especificado como o ID de recurso de banco de dados recuperável a ser restaurado.

Restaurar: cria um banco de dados restaurando um backup de um banco de dados excluído. sourceDatabaseId deve ser especificado. Se sourceDatabaseId for o ID de recurso original do banco de dados, sourceDatabaseDeletionDate deverá ser especificado. Caso contrário, sourceDatabaseId deve ser o ID de recurso de banco de dados descartado restaurável e sourceDatabaseDeletionDate é ignorado. restorePointInTime também pode ser especificado para restaurar a partir de um point-in-time anterior.

RestoreLongTermRetentionBackup: cria um banco de dados restaurando a partir de um cofre de retenção de longo prazo. recoveryServicesRecoveryPointResourceId deve ser especificado como o ID do recurso do ponto de recuperação.

Copy, NonReadableSecondary, OnlineSecondary e RestoreLongTermRetentionBackup não são suportados para a edição DataWarehouse. | 'Copiar'
'Default'
'NonReadableSecondary'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreLongTermRetentionBackup' | | edição | A edição da base de dados. A enumeração DatabaseEditions contém todas as edições válidas. Se createMode for NonReadableSecondary ou OnlineSecondary, esse valor será ignorado.

A lista de SKUs pode variar de acordo com a região e a oferta de suporte. Para determinar os SKUs (incluindo o nome, nível/edição, família e capacidade) disponíveis para a sua subscrição numa região Azure, use a API REST Capabilities_ListByLocation ou um dos seguintes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
<Get-AzSqlServerServiceObjective -Location localização>
| 'Basic'<br />'Business'<br />'BusinessCritical'<br />'DataWarehouse'<br />'Free'<br />'GeneralPurpose'<br />'Hyperscale'<br />'Premium'<br />'PremiumRS'<br />'Standard'<br />'Stretch'<br />'System'<br />'System2'<br />'Web' | | elasticPoolName | The name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition. | string | | maxSizeBytes | The max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." | string | | readScale | Conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. | 'Disabled'<br />'Enabled' | | recoveryServicesRecoveryPointResourceId | Conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from. | string | | requestedServiceObjectiveId | The configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName.<br /><br />The list of SKUs may vary by region and support offer. To determine the service objective ids that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API. | string <br /><br />Constraints:<br />Min length = 36<br />Max length = 36<br />Pattern = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$` | | requestedServiceObjectiveName | The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. <br /><br />The list of SKUs may vary by region and support offer. To determine the SKUs (including the SKU name, tier/edition, family, and capacity) that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API or one of the following commands:<br /><br />```azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

```powershell
<Get-AzSqlServerServiceObjective -Location localização>
```` | 'Básico'
'DS100'
'DS1000'
'DS1200'
'DS1500'
'DS200'
'DS2000'
'DS300'
'DS400'
'DS500'
'DS600'
'DW100'
'DW1000'
'DW10000c'
'DW1000c'
'DW1200'
'DW1500'
'DW15000c'
'DW1500c'
'DW200'
'DW2000'
'DW2000c'
'DW2500c'
'DW300'
'DW3000'
'DW30000c'
'DW3000c'
'DW400'
'DW500'
'DW5000c'
'DW600'
'DW6000'
'DW6000c'
'DW7500c'
'ElasticPool'
'Free'
'P1'
'P11'
'P15'
'P2'
'P3'
'P4'
'P6'
'PRS1'
'PRS2'
'PRS4'
'PRS6'
'S0'
'S1'
'S12'
'S2'
'S3'
'S4'
'S6'
'S7'
'S9'
'System'
'System0'
'System1'
'System2'
'System2L'
'System3'
'System3L'
'System4'
'System4L' | | restaurarPointInTime | Condicional. Se createMode for PointInTimeRestore, esse valor será necessário. Se createMode for Restore, esse valor será opcional. Especifica o ponto no tempo (formato ISO8601) do banco de dados de origem que será restaurado para criar o novo banco de dados. Deve ser maior ou igual ao valor earliestRestoreDate do banco de dados de origem. | string | | sampleName | Indica o nome do esquema de exemplo a ser aplicado ao criar esse banco de dados. Se createMode não for Default, esse valor será ignorado. Não há suporte para a edição DataWarehouse. | 'AdventureWorksLT' | | sourceDatabaseDeletionDate | Condicional. Se createMode for Restore e sourceDatabaseId for a id de recurso original do banco de dados excluído quando ele existia (em oposição à sua id de banco de dados descartada restaurável atual), esse valor será necessário. Especifica a hora em que o banco de dados foi excluído. | string | | sourceDatabaseId | Condicional. Se createMode for Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery ou Restore, esse valor será necessário. Especifica a ID do recurso do banco de dados de origem. Se createMode for NonReadableSecondary ou OnlineSecondary, o nome do banco de dados de origem deverá ser o mesmo que o novo banco de dados que está sendo criado. | string | | zoneRedundante | Se esse banco de dados é ou não redundante de zona, o que significa que as réplicas desse banco de dados serão espalhadas por várias zonas de disponibilidade. | Bool |

TrackedResourceTags

Name Description Value

Exemplos de uso

Amostras de Bicep

Um exemplo básico de implantação do Banco de Dados MS SQL.

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

Os seguintes Azure Módulos Verificados podem ser usados para implementar este tipo de recurso.

Módulo Description
Base de Dados SQL do Azure AVM Resource Module for Base de Dados SQL do Azure

Azure Quickstart Samples

Os seguintes modelos Azure Quickstart contêm Bicep exemplos para implementar este tipo de recurso.

Ficheiro Bicep Description
Azure SQL Server com Auditoria escrita para Log Analytics Este modelo permite-lhe implementar um servidor SQL do Azure com Auditoria ativada para escrever registos de auditoria no Log Analytics (espaço de trabalho OMS)
Criar um SQL Server e Base de Dados Este modelo permite que você crie o Banco de Dados SQL e o Servidor.
Pool SQL dedicado com encriptação transparente Cria um SQL Server e um pool SQL dedicado (anteriormente SQL DW) com Encriptação de Dados Transparente.
Implementar a análise desportiva na arquitetura Azure Cria uma conta de armazenamento Azure com ADLS Gen 2 ativado, uma instância do Azure Data Factory com serviços ligados para a conta de armazenamento (e a Base de Dados SQL do Azure se implementada) e uma instância do Azure Databricks. A identidade do AAD para o usuário que implanta o modelo e a identidade gerenciada para a instância do ADF receberão a função de Colaborador de Dados de Blob de Armazenamento na conta de armazenamento. Existem também opções para implementar uma instância do Azure Key Vault, uma Base de Dados SQL do Azure e um Azure Event Hub (para casos de uso em streaming). Quando um Azure Key Vault é implementado, a identidade gerida pela fábrica de dados e a identidade AAD do utilizador que implementa o template recebem o papel de Utilizador Key Vault Secrets.
Endpoint privado Este modelo mostra como criar um endpoint privado apontando para o Azure SQL Server
Provisionar uma Aplicação Web com uma Base de Dados SQL Este modelo provisiona um Aplicativo Web, um Banco de Dados SQL, configurações de Dimensionamento Automático, regras de Alerta e Informações sobre Aplicativos. Configura uma cadeia de ligação na aplicação web para a base de dados.
Sonarqube Docker Web App em Linux com SQL do Azure Este modelo implementa o Sonarqube num contentor Linux de aplicação web do Serviço de Aplicações do Azure, usando a imagem oficial do Sonarqube e suportado por um Azure SQL Server.
Aplicação Web com Identidade Gerida, SQL Server e ΑΙ Exemplo simples para implementar infraestrutura Azure para aplicação + dados + identidade gerida + monitorização

Definição de recurso de modelo ARM

O tipo de recurso servidores/bancos de dados pode ser implantado com operações que visam:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte log de alterações.

Formato do recurso

Para criar uma Microsoft. Sql/servidores/bases de dados, adicione o seguinte JSON ao seu modelo.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2014-04-01",
  "name": "string",
  "location": "string",
  "properties": {
    "collation": "string",
    "createMode": "string",
    "edition": "string",
    "elasticPoolName": "string",
    "maxSizeBytes": "string",
    "readScale": "string",
    "recoveryServicesRecoveryPointResourceId": "string",
    "requestedServiceObjectiveId": "string",
    "requestedServiceObjectiveName": "string",
    "restorePointInTime": "string",
    "sampleName": "string",
    "sourceDatabaseDeletionDate": "string",
    "sourceDatabaseId": "string",
    "zoneRedundant": "bool"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propriedade

Microsoft. SQL/servidores/bases de dados

Name Description Value
apiVersion A versão api '2014-04-01'
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
properties As propriedades que representam o recurso. DatabaseProperties
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos
tipo O tipo de recurso 'Microsoft. Sql/servidores/bases de dados'

DatabaseProperties

| Nome | Descrição | Valor | | ---- | ----------- | ------------ | | agrupamento | O agrupamento do banco de dados. Se createMode não for Default, esse valor será ignorado. | string | | createMode | Especifica o modo de criação do banco de dados.

Padrão: criação regular de banco de dados.

Copiar: cria um banco de dados como uma cópia de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados de origem.

OnlineSecondary/NonReadableSecondary: cria um banco de dados como uma réplica secundária (legível ou ilegível) de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados primário existente.

PointInTimeRestore: Cria um banco de dados restaurando um backup point-in-time de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID de recurso do banco de dados existente e restorePointInTime deve ser especificado.

Recuperação: cria um banco de dados restaurando um backup replicado geograficamente. sourceDatabaseId deve ser especificado como o ID de recurso de banco de dados recuperável a ser restaurado.

Restaurar: cria um banco de dados restaurando um backup de um banco de dados excluído. sourceDatabaseId deve ser especificado. Se sourceDatabaseId for o ID de recurso original do banco de dados, sourceDatabaseDeletionDate deverá ser especificado. Caso contrário, sourceDatabaseId deve ser o ID de recurso de banco de dados descartado restaurável e sourceDatabaseDeletionDate é ignorado. restorePointInTime também pode ser especificado para restaurar a partir de um point-in-time anterior.

RestoreLongTermRetentionBackup: cria um banco de dados restaurando a partir de um cofre de retenção de longo prazo. recoveryServicesRecoveryPointResourceId deve ser especificado como o ID do recurso do ponto de recuperação.

Copy, NonReadableSecondary, OnlineSecondary e RestoreLongTermRetentionBackup não são suportados para a edição DataWarehouse. | 'Copiar'
'Default'
'NonReadableSecondary'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreLongTermRetentionBackup' | | edição | A edição da base de dados. A enumeração DatabaseEditions contém todas as edições válidas. Se createMode for NonReadableSecondary ou OnlineSecondary, esse valor será ignorado.

A lista de SKUs pode variar de acordo com a região e a oferta de suporte. Para determinar os SKUs (incluindo o nome, nível/edição, família e capacidade) disponíveis para a sua subscrição numa região Azure, use a API REST Capabilities_ListByLocation ou um dos seguintes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
<Get-AzSqlServerServiceObjective -Location localização>
| 'Basic'<br />'Business'<br />'BusinessCritical'<br />'DataWarehouse'<br />'Free'<br />'GeneralPurpose'<br />'Hyperscale'<br />'Premium'<br />'PremiumRS'<br />'Standard'<br />'Stretch'<br />'System'<br />'System2'<br />'Web' | | elasticPoolName | The name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition. | string | | maxSizeBytes | The max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." | string | | readScale | Conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. | 'Disabled'<br />'Enabled' | | recoveryServicesRecoveryPointResourceId | Conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from. | string | | requestedServiceObjectiveId | The configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName.<br /><br />The list of SKUs may vary by region and support offer. To determine the service objective ids that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API. | string <br /><br />Constraints:<br />Min length = 36<br />Max length = 36<br />Pattern = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$` | | requestedServiceObjectiveName | The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. <br /><br />The list of SKUs may vary by region and support offer. To determine the SKUs (including the SKU name, tier/edition, family, and capacity) that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API or one of the following commands:<br /><br />```azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

```powershell
<Get-AzSqlServerServiceObjective -Location localização>
```` | 'Básico'
'DS100'
'DS1000'
'DS1200'
'DS1500'
'DS200'
'DS2000'
'DS300'
'DS400'
'DS500'
'DS600'
'DW100'
'DW1000'
'DW10000c'
'DW1000c'
'DW1200'
'DW1500'
'DW15000c'
'DW1500c'
'DW200'
'DW2000'
'DW2000c'
'DW2500c'
'DW300'
'DW3000'
'DW30000c'
'DW3000c'
'DW400'
'DW500'
'DW5000c'
'DW600'
'DW6000'
'DW6000c'
'DW7500c'
'ElasticPool'
'Free'
'P1'
'P11'
'P15'
'P2'
'P3'
'P4'
'P6'
'PRS1'
'PRS2'
'PRS4'
'PRS6'
'S0'
'S1'
'S12'
'S2'
'S3'
'S4'
'S6'
'S7'
'S9'
'System'
'System0'
'System1'
'System2'
'System2L'
'System3'
'System3L'
'System4'
'System4L' | | restaurarPointInTime | Condicional. Se createMode for PointInTimeRestore, esse valor será necessário. Se createMode for Restore, esse valor será opcional. Especifica o ponto no tempo (formato ISO8601) do banco de dados de origem que será restaurado para criar o novo banco de dados. Deve ser maior ou igual ao valor earliestRestoreDate do banco de dados de origem. | string | | sampleName | Indica o nome do esquema de exemplo a ser aplicado ao criar esse banco de dados. Se createMode não for Default, esse valor será ignorado. Não há suporte para a edição DataWarehouse. | 'AdventureWorksLT' | | sourceDatabaseDeletionDate | Condicional. Se createMode for Restore e sourceDatabaseId for a id de recurso original do banco de dados excluído quando ele existia (em oposição à sua id de banco de dados descartada restaurável atual), esse valor será necessário. Especifica a hora em que o banco de dados foi excluído. | string | | sourceDatabaseId | Condicional. Se createMode for Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery ou Restore, esse valor será necessário. Especifica a ID do recurso do banco de dados de origem. Se createMode for NonReadableSecondary ou OnlineSecondary, o nome do banco de dados de origem deverá ser o mesmo que o novo banco de dados que está sendo criado. | string | | zoneRedundante | Se esse banco de dados é ou não redundante de zona, o que significa que as réplicas desse banco de dados serão espalhadas por várias zonas de disponibilidade. | Bool |

TrackedResourceTags

Name Description Value

Exemplos de uso

Modelos de Início Rápido do Azure

Os seguintes modelos Azure Quickstart implementam este tipo de recurso.

Template Description
Azure SQL Server com Auditoria escrita para Log Analytics

Implementar para Azure
Este modelo permite-lhe implementar um servidor SQL do Azure com Auditoria ativada para escrever registos de auditoria no Log Analytics (espaço de trabalho OMS)
Criar um SQL Server e Base de Dados

Implementar para Azure
Este modelo permite que você crie o Banco de Dados SQL e o Servidor.
Pool SQL dedicado com encriptação transparente

Implementar para Azure
Cria um SQL Server e um pool SQL dedicado (anteriormente SQL DW) com Encriptação de Dados Transparente.
Implementar um novo SQL Elastic Pool

Implementar para Azure
Este modelo permite-lhe implementar um novo SQL Elastic Pool com o seu novo SQL Server associado e novas bases de dados SQL para lhe atribuir.
Implementar a análise desportiva na arquitetura Azure

Implementar para Azure
Cria uma conta de armazenamento Azure com ADLS Gen 2 ativado, uma instância do Azure Data Factory com serviços ligados para a conta de armazenamento (e a Base de Dados SQL do Azure se implementada) e uma instância do Azure Databricks. A identidade do AAD para o usuário que implanta o modelo e a identidade gerenciada para a instância do ADF receberão a função de Colaborador de Dados de Blob de Armazenamento na conta de armazenamento. Existem também opções para implementar uma instância do Azure Key Vault, uma Base de Dados SQL do Azure e um Azure Event Hub (para casos de uso em streaming). Quando um Azure Key Vault é implementado, a identidade gerida pela fábrica de dados e a identidade AAD do utilizador que implementa o template recebem o papel de Utilizador Key Vault Secrets.
HDInsight com base de dados personalizada Ambari + Hive Metastore em VNET

Implementar para Azure
Este modelo permite criar um cluster HDInsight em uma rede virtual existente com um novo banco de dados SQL que serve como um banco de dados Ambari personalizado e um Metastore do Hive. Você deve ter um SQL Sever, uma conta de armazenamento e uma VNET existentes.
Endpoint privado

Implementar para Azure
Este modelo mostra como criar um endpoint privado apontando para o Azure SQL Server
Provisionar uma Aplicação Web com uma Base de Dados SQL

Implementar para Azure
Este modelo provisiona um Aplicativo Web, um Banco de Dados SQL, configurações de Dimensionamento Automático, regras de Alerta e Informações sobre Aplicativos. Configura uma cadeia de ligação na aplicação web para a base de dados.
Ambiente de Trabalho Remoto Serviços com Alta Disponibilidade

Implementar para Azure
Este código de exemplo do Modelo ARM irá implementar um laboratório Ambiente de Trabalho Remoto Services 2019 Session Collection com alta disponibilidade. O objetivo é implementar uma solução totalmente redundante e altamente disponível para Ambiente de Trabalho Remoto Services, utilizando o Windows Server 2019.
Sonarqube Docker Web App em Linux com SQL do Azure

Implementar para Azure
Este modelo implementa o Sonarqube num contentor Linux de aplicação web do Serviço de Aplicações do Azure, usando a imagem oficial do Sonarqube e suportado por um Azure SQL Server.
Aplicação Web com Identidade Gerida, SQL Server e ΑΙ

Implementar para Azure
Exemplo simples para implementar infraestrutura Azure para aplicação + dados + identidade gerida + monitorização
WebApp a consumir um SQL do Azure Private Endpoint

Implementar para Azure
Este modelo mostra como criar uma aplicação Web que consome um endpoint privado apontando para o Azure SQL Server

Definição de recursos Terraform (provedor AzAPI)

O tipo de recurso servidores/bancos de dados pode ser implantado com operações que visam:

  • Grupos de recursos

Para obter uma lista de propriedades alteradas em cada versão da API, consulte log de alterações.

Formato do recurso

Para criar uma Microsoft. Recurso SQL/servidores/bases de dados, adicione o seguinte Terraform ao seu modelo.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2014-04-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      collation = "string"
      createMode = "string"
      edition = "string"
      elasticPoolName = "string"
      maxSizeBytes = "string"
      readScale = "string"
      recoveryServicesRecoveryPointResourceId = "string"
      requestedServiceObjectiveId = "string"
      requestedServiceObjectiveName = "string"
      restorePointInTime = "string"
      sampleName = "string"
      sourceDatabaseDeletionDate = "string"
      sourceDatabaseId = "string"
      zoneRedundant = bool
    }
  }
}

Valores de propriedade

Microsoft. SQL/servidores/bases de dados

Name Description Value
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
parent_id A ID do recurso que é o pai para este recurso. ID para recurso do tipo: servidores
properties As propriedades que representam o recurso. DatabaseProperties
tags Etiquetas de recursos Dicionário de nomes e valores de tags.
tipo O tipo de recurso "Microsoft. Sql/servidores/databases@2014-04-01"

DatabaseProperties

| Nome | Descrição | Valor | | ---- | ----------- | ------------ | | agrupamento | O agrupamento do banco de dados. Se createMode não for Default, esse valor será ignorado. | string | | createMode | Especifica o modo de criação do banco de dados.

Padrão: criação regular de banco de dados.

Copiar: cria um banco de dados como uma cópia de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados de origem.

OnlineSecondary/NonReadableSecondary: cria um banco de dados como uma réplica secundária (legível ou ilegível) de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID do recurso do banco de dados primário existente.

PointInTimeRestore: Cria um banco de dados restaurando um backup point-in-time de um banco de dados existente. sourceDatabaseId deve ser especificado como a ID de recurso do banco de dados existente e restorePointInTime deve ser especificado.

Recuperação: cria um banco de dados restaurando um backup replicado geograficamente. sourceDatabaseId deve ser especificado como o ID de recurso de banco de dados recuperável a ser restaurado.

Restaurar: cria um banco de dados restaurando um backup de um banco de dados excluído. sourceDatabaseId deve ser especificado. Se sourceDatabaseId for o ID de recurso original do banco de dados, sourceDatabaseDeletionDate deverá ser especificado. Caso contrário, sourceDatabaseId deve ser o ID de recurso de banco de dados descartado restaurável e sourceDatabaseDeletionDate é ignorado. restorePointInTime também pode ser especificado para restaurar a partir de um point-in-time anterior.

RestoreLongTermRetentionBackup: cria um banco de dados restaurando a partir de um cofre de retenção de longo prazo. recoveryServicesRecoveryPointResourceId deve ser especificado como o ID do recurso do ponto de recuperação.

Copy, NonReadableSecondary, OnlineSecondary e RestoreLongTermRetentionBackup não são suportados para a edição DataWarehouse. | 'Copiar'
'Default'
'NonReadableSecondary'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreLongTermRetentionBackup' | | edição | A edição da base de dados. A enumeração DatabaseEditions contém todas as edições válidas. Se createMode for NonReadableSecondary ou OnlineSecondary, esse valor será ignorado.

A lista de SKUs pode variar de acordo com a região e a oferta de suporte. Para determinar os SKUs (incluindo o nome, nível/edição, família e capacidade) disponíveis para a sua subscrição numa região Azure, use a API REST Capabilities_ListByLocation ou um dos seguintes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
<Get-AzSqlServerServiceObjective -Location localização>
| 'Basic'<br />'Business'<br />'BusinessCritical'<br />'DataWarehouse'<br />'Free'<br />'GeneralPurpose'<br />'Hyperscale'<br />'Premium'<br />'PremiumRS'<br />'Standard'<br />'Stretch'<br />'System'<br />'System2'<br />'Web' | | elasticPoolName | The name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition. | string | | maxSizeBytes | The max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." | string | | readScale | Conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. | 'Disabled'<br />'Enabled' | | recoveryServicesRecoveryPointResourceId | Conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from. | string | | requestedServiceObjectiveId | The configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName.<br /><br />The list of SKUs may vary by region and support offer. To determine the service objective ids that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API. | string <br /><br />Constraints:<br />Min length = 36<br />Max length = 36<br />Pattern = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$` | | requestedServiceObjectiveName | The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. <br /><br />The list of SKUs may vary by region and support offer. To determine the SKUs (including the SKU name, tier/edition, family, and capacity) that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API or one of the following commands:<br /><br />```azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

```powershell
<Get-AzSqlServerServiceObjective -Location localização>
```` | 'Básico'
'DS100'
'DS1000'
'DS1200'
'DS1500'
'DS200'
'DS2000'
'DS300'
'DS400'
'DS500'
'DS600'
'DW100'
'DW1000'
'DW10000c'
'DW1000c'
'DW1200'
'DW1500'
'DW15000c'
'DW1500c'
'DW200'
'DW2000'
'DW2000c'
'DW2500c'
'DW300'
'DW3000'
'DW30000c'
'DW3000c'
'DW400'
'DW500'
'DW5000c'
'DW600'
'DW6000'
'DW6000c'
'DW7500c'
'ElasticPool'
'Free'
'P1'
'P11'
'P15'
'P2'
'P3'
'P4'
'P6'
'PRS1'
'PRS2'
'PRS4'
'PRS6'
'S0'
'S1'
'S12'
'S2'
'S3'
'S4'
'S6'
'S7'
'S9'
'System'
'System0'
'System1'
'System2'
'System2L'
'System3'
'System3L'
'System4'
'System4L' | | restaurarPointInTime | Condicional. Se createMode for PointInTimeRestore, esse valor será necessário. Se createMode for Restore, esse valor será opcional. Especifica o ponto no tempo (formato ISO8601) do banco de dados de origem que será restaurado para criar o novo banco de dados. Deve ser maior ou igual ao valor earliestRestoreDate do banco de dados de origem. | string | | sampleName | Indica o nome do esquema de exemplo a ser aplicado ao criar esse banco de dados. Se createMode não for Default, esse valor será ignorado. Não há suporte para a edição DataWarehouse. | 'AdventureWorksLT' | | sourceDatabaseDeletionDate | Condicional. Se createMode for Restore e sourceDatabaseId for a id de recurso original do banco de dados excluído quando ele existia (em oposição à sua id de banco de dados descartada restaurável atual), esse valor será necessário. Especifica a hora em que o banco de dados foi excluído. | string | | sourceDatabaseId | Condicional. Se createMode for Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery ou Restore, esse valor será necessário. Especifica a ID do recurso do banco de dados de origem. Se createMode for NonReadableSecondary ou OnlineSecondary, o nome do banco de dados de origem deverá ser o mesmo que o novo banco de dados que está sendo criado. | string | | zoneRedundante | Se esse banco de dados é ou não redundante de zona, o que significa que as réplicas desse banco de dados serão espalhadas por várias zonas de disponibilidade. | Bool |

TrackedResourceTags

Name Description Value

Exemplos de uso

Amostras Terraform

Um exemplo básico de implantação do Banco de Dados MS SQL.

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    = ["*"]
}

Um exemplo básico de implantação do Banco de Dados MS SQL.

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    = ["*"]
}