Определение ресурсов Bicep
Тип ресурсов кластеров можно развернуть с помощью операций, предназначенных для следующих операций:
Список измененных свойств в каждой версии API см. в журнала изменений.
Чтобы создать ресурс Microsoft.HDInsight/clusters, добавьте следующий Bicep в шаблон.
resource symbolicname 'Microsoft.HDInsight/clusters@2023-08-15-preview' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {
tenantId: 'string'
}
}
}
location: 'string'
name: 'string'
properties: {
clusterDefinition: {
blueprint: 'string'
componentVersion: {
{customized property}: 'string'
}
configurations: any(...)
kind: 'string'
}
clusterVersion: 'string'
computeIsolationProperties: {
enableComputeIsolation: bool
hostSku: 'string'
}
computeProfile: {
roles: [
{
autoscale: {
capacity: {
maxInstanceCount: int
minInstanceCount: int
}
recurrence: {
schedule: [
{
days: [
'string'
]
timeAndCapacity: {
maxInstanceCount: int
minInstanceCount: int
time: 'string'
}
}
]
timeZone: 'string'
}
}
dataDisksGroups: [
{
disksPerNode: int
}
]
encryptDataDisks: bool
hardwareProfile: {
vmSize: 'string'
}
minInstanceCount: int
name: 'string'
osProfile: {
linuxOperatingSystemProfile: {
password: 'string'
sshProfile: {
publicKeys: [
{
certificateData: 'string'
}
]
}
username: 'string'
}
}
scriptActions: [
{
name: 'string'
parameters: 'string'
uri: 'string'
}
]
targetInstanceCount: int
virtualNetworkProfile: {
id: 'string'
subnet: 'string'
}
VMGroupName: 'string'
}
]
}
diskEncryptionProperties: {
encryptionAlgorithm: 'string'
encryptionAtHost: bool
keyName: 'string'
keyVersion: 'string'
msiResourceId: 'string'
vaultUri: 'string'
}
encryptionInTransitProperties: {
isEncryptionInTransitEnabled: bool
}
kafkaRestProperties: {
clientGroupInfo: {
groupId: 'string'
groupName: 'string'
}
configurationOverride: {
{customized property}: 'string'
}
}
minSupportedTlsVersion: 'string'
networkProperties: {
outboundDependenciesManagedType: 'string'
privateLink: 'string'
resourceProviderConnection: 'string'
}
osType: 'string'
privateLinkConfigurations: [
{
name: 'string'
properties: {
groupId: 'string'
ipConfigurations: [
{
name: 'string'
properties: {
primary: bool
privateIPAddress: 'string'
privateIPAllocationMethod: 'string'
subnet: {
id: 'string'
}
}
}
]
}
}
]
securityProfile: {
aaddsResourceId: 'string'
clusterUsersGroupDNs: [
'string'
]
directoryType: 'string'
domain: 'string'
domainUsername: 'string'
domainUserPassword: 'string'
ldapsUrls: [
'string'
]
msiResourceId: 'string'
organizationalUnitDN: 'string'
}
storageProfile: {
storageaccounts: [
{
container: 'string'
enableSecureChannel: bool
fileshare: 'string'
fileSystem: 'string'
isDefault: bool
key: 'string'
msiResourceId: 'string'
name: 'string'
resourceId: 'string'
saskey: 'string'
}
]
}
tier: 'string'
}
tags: {
{customized property}: 'string'
}
zones: [
'string'
]
}
Значения свойств
Microsoft.HDInsight/clusters
| Имя |
Описание |
Ценность |
| тождество |
Удостоверение кластера, если настроено. |
clusterIdentity |
| местоположение |
Расположение кластера. |
струна |
| имя |
Имя ресурса |
строка (обязательно) |
| свойства |
Параметры создания кластера. |
ClusterCreatePropertiesOrClusterGetProperties |
| Теги |
Теги ресурсов |
Словарь имен и значений тегов. См. теги в шаблонах |
| Зоны |
Зоны доступности. |
строка[] |
Автомасштабирование
АвтомасштабированиеCapacity
| Имя |
Описание |
Ценность |
| maxInstanceCount |
Максимальное число экземпляров кластера |
инт |
| minInstanceCount |
Минимальное количество экземпляров кластера |
инт |
АвтомасштабированиеRecurrence
| Имя |
Описание |
Ценность |
| расписание |
Массив правил автомасштабирования на основе расписания |
АвтомасштабированиеРасписание[] |
| часовой пояс |
Часовой пояс для времени автомасштабирования |
струна |
АвтомасштабированиеSchedule
| Имя |
Описание |
Ценность |
| Дни недели |
Дни недели для правила автомасштабирования на основе расписания |
Массив строк, содержащий любой из: "Пятница" "Понедельник" "Суббота" "Воскресенье" "Четверг" "Вторник" "Среда" |
| timeAndCapacity |
Время и емкость правила автомасштабирования на основе расписания |
AutoscaleTimeAndCapacity |
AutoscaleTimeAndCapacity
| Имя |
Описание |
Ценность |
| maxInstanceCount |
Максимальное число экземпляров кластера |
инт |
| minInstanceCount |
Минимальное количество экземпляров кластера |
инт |
| Время |
24-часовое время в форме xx:xx |
струна |
Информация о клиентской группе
| Имя |
Описание |
Ценность |
| идентификатор группы |
Идентификатор группы безопасности AAD. |
струна |
| имя группы |
Имя группы безопасности AAD. |
струна |
ClusterCreatePropertiesOrClusterGetProperties
Определение кластера
ClusterDefinitionComponentVersion (ClusterDefinitionComponentVersion)
ClusterIdentity (ClusterIdentity)
| Имя |
Описание |
Ценность |
| тип |
Тип удостоверения, используемого для кластера. Тип SystemAssigned, UserAssigned включает как неявное созданное удостоверение, так и набор назначенных пользователем удостоверений. |
"Нет" SystemAssigned SystemAssigned, UserAssigned UserAssigned |
| ИдентичностиНазначенныеПользователем |
Список удостоверений пользователей, связанных с кластером. Ссылки на ключ словаря удостоверений пользователя будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}". |
ClusterIdentityUserAssignedIdentities |
ClusterIdentityUserAssignedIdentities
Свойства ComputeIsolationProperties
| Имя |
Описание |
Ценность |
| enableComputeIsolation |
Флаг указывает, включена ли изоляция вычислений или нет. |
булевая переменная (bool) |
| hostSku |
SKU узла. |
струна |
Профиль вычислений
| Имя |
Описание |
Ценность |
| Роли |
Список ролей в кластере. |
роли[] |
DataDisksGroups
| Имя |
Описание |
Ценность |
| disksPerNode |
Количество дисков на узел. |
инт |
Свойства шифрования диска
| Имя |
Описание |
Ценность |
| шифрованиеАлгоритм |
Идентификатор алгоритма для шифрования по умолчанию RSA-OAEP. |
«ЮАР-ОАЭП» 'RSA-OAEP-256' "RSA1_5" |
| encryptionAtHost |
Указывает, включена ли шифрование диска ресурсов. |
булевая переменная (bool) |
| keyName |
Имя ключа, используемое для включения шифрования дисков. |
струна |
| keyVersion |
Определенная версия ключа, используемая для включения шифрования дисков. |
струна |
| msiResourceId |
Идентификатор ресурса управляемого удостоверения, который используется для доступа к хранилищу ключей. |
струна |
| vaultUri |
Базовый URI хранилища ключей, в котором находится ключ клиента, например. https://myvault.vault.azure.net |
струна |
EncryptionInTransitProperties
| Имя |
Описание |
Ценность |
| isEncryptionInTransitEnabled |
Указывает, шифруется ли обмен данными между узлами кластера при передаче. |
булевая переменная (bool) |
Профиль оборудования
| Имя |
Описание |
Ценность |
| vmSize |
Размер виртуальной машины |
струна |
IPConfiguration
| Имя |
Описание |
Ценность |
| имя |
Имя конфигурации IP-адреса приватного канала. |
строка (обязательно) |
| свойства |
Свойства конфигурации IP-адреса приватного канала. |
IPConfigurationProperties |
IPConfigurationProperties
| Имя |
Описание |
Ценность |
| первичный |
Указывает, является ли эта IP-конфигурация основной для соответствующей сетевой карты. |
булевая переменная (bool) |
| частныйIPПрессест |
IP-адрес. |
струна |
| privateIPAllocationMethod |
Метод, выделенный частным IP-адресом. |
"Динамический" "статический" |
| подсеть |
Идентификатор ресурса подсети. |
ResourceId (Идентификатор ресурса) |
KafkaRestСвойства
KafkaRestPropertiesConfigurationOverride
Профиль операционной системы Linux
| Имя |
Описание |
Ценность |
| пароль |
Пароль. |
струна |
| sshProfile |
Профиль SSH. |
Профиль sshProfile |
| имя пользователя |
Имя пользователя. |
струна |
Свойства сети
| Имя |
Описание |
Ценность |
| outboundDependenciesManagedType |
Значение, описывающее управление исходящими зависимостями кластера HDInsight. Managed означает, что исходящие зависимости управляются службой HDInsight. "Внешний" означает, что исходящие зависимости управляются определенным клиентом решением. |
"Внешний" "Managed" (Управляемый) |
| приватнаяссылка |
Указывает, включена ли частная ссылка. |
"Отключено" "Включено" |
| resourceProviderConnection |
Направление подключения поставщика ресурсов. |
"Входящий трафик" Исходящий трафик |
ОсПрофиль
PrivateLinkConfiguration (Конфигурация PrivateLink)
| Имя |
Описание |
Ценность |
| имя |
Имя конфигурации приватного канала. |
строка (обязательно) |
| свойства |
Свойства конфигурации приватного канала. |
PrivateLinkConfigurationProperties (обязательно) |
PrivateLinkConfigurationProperties (Свойства PrivateLinkConfiguration)
| Имя |
Описание |
Ценность |
| идентификатор группы |
Приватное имя подресурсов HDInsight для применения конфигурации приватного канала. Например, headnode, gateway, edgenode. |
строка (обязательно) |
| ipКонфигурации |
Ip-конфигурации для службы приватного канала. |
IPConfiguration[] (обязательно) |
ResourceId (Идентификатор ресурса)
| Имя |
Описание |
Ценность |
| идентификатор |
Идентификатор ресурса Azure. |
струна |
Роль
| Имя |
Описание |
Ценность |
| автомасштабирование |
Конфигурации автомасштабирования. |
автомасштабирование |
| dataDisksGroups |
Группы дисков данных для роли. |
DataDisksGroups[] |
| encryptDataDisks |
Указывает, шифруются ли диски данных. |
булевая переменная (bool) |
| hardwareProfile |
Профиль оборудования. |
Профиль оборудования |
| minInstanceCount |
Минимальное количество экземпляров кластера. |
инт |
| имя |
Имя роли. |
струна |
| osПрофиль |
Профиль операционной системы. |
ОсПрофиль |
| scriptActions |
Список действий скрипта для роли. |
Действие скрипта[] |
| targetInstanceCount |
Количество экземпляров кластера. |
инт |
| virtualNetworkProfile |
Профиль виртуальной сети. |
Профиль VirtualNetworkProfile |
| VMGroupName |
Имя группы виртуальных машин. |
струна |
Действие скрипта
| Имя |
Описание |
Ценность |
| имя |
Имя действия скрипта. |
строка (обязательно) |
| Параметры |
Параметры для предоставленного скрипта. |
строка (обязательно) |
| ури |
Универсальный код ресурса (URI) скрипта. |
строка (обязательно) |
Профиль безопасности
| Имя |
Описание |
Ценность |
| aaddsResourceId |
Идентификатор ресурса доменной службы Azure Active Directory пользователя. |
струна |
| clusterUsersGroupDNs |
Необязательный. Различающиеся имена для групп пользователей кластера |
строка[] |
| directoryType |
Тип каталога. |
"ActiveDirectory" |
| домен |
Домен Active Directory организации. |
струна |
| доменИмя пользователя |
Учетная запись пользователя домена, которая будет иметь права администратора в кластере. |
струна |
| domainUserPassword |
Пароль администратора домена. |
струна |
| ldapsUrls |
URL-адреса протокола LDAPS для взаимодействия с Active Directory. |
строка[] |
| msiResourceId |
Назначаемое пользователем удостоверение с разрешениями на чтение и создание артефактов, связанных с кластером, в AADDS пользователя. |
струна |
| организацияUnitDN |
Подразделение в Active Directory для размещения учетных записей кластера и служб. |
струна |
Профиль sshProfile
| Имя |
Описание |
Ценность |
| publicKeys |
Список открытых ключей SSH. |
SshPublicKey[] |
SshPublicKey (SshPublicKey)
| Имя |
Описание |
Ценность |
| certificateData |
Сертификат для SSH. |
струна |
учетная запись хранения
| Имя |
Описание |
Ценность |
| контейнер |
Контейнер в учетной записи хранения указывается только для учетных записей хранения WASB. |
струна |
| enableSecureChannel |
Включите безопасный канал или нет, это необязательное поле. Значение по умолчанию равно false, если версия кластера < 5.1 и true, если версия кластера >= 5.1 , |
булевая переменная (bool) |
| общий доступ к файлу |
Имя общей папки. |
струна |
| файловая система |
Файловая система должна быть указана только для Azure Data Lake Storage 2-го поколения. |
струна |
| isDefault |
Независимо от того, является ли учетная запись хранения учетной записью хранения по умолчанию. |
булевая переменная (bool) |
| ключ |
Ключ доступа к учетной записи хранения. |
струна |
| msiResourceId |
Управляемое удостоверение (MSI), которое разрешено получить доступ к учетной записи хранения, только для Azure Data Lake Storage 2-го поколения. |
струна |
| имя |
Имя учетной записи хранения. |
струна |
| идентификатор ресурса |
Идентификатор ресурса учетной записи хранения, только для Azure Data Lake Storage 2-го поколения. |
струна |
| Саски |
Ключ подписанного URL-адреса. |
струна |
Профиль хранилища
| Имя |
Описание |
Ценность |
| учетные записи хранилища |
Список учетных записей хранения в кластере. |
Учетная запись хранения[] |
Пользовательская назначенная идентичность
| Имя |
Описание |
Ценность |
| идентификатор арендатора |
Идентификатор клиента назначаемого пользователем удостоверения. |
струна |
Профиль VirtualNetworkProfile
| Имя |
Описание |
Ценность |
| идентификатор |
Идентификатор виртуальной сети. |
струна |
| подсеть |
Имя подсети. |
струна |
Примеры использования
Примеры Bicep
Простой пример развертывания кластера HDInsight.
param resourceName string = 'acctest0001'
param location string = 'westeurope'
@description('The username for the HDInsight cluster virtual machines')
param vmUsername string
@secure()
@description('The password for the HDInsight cluster virtual machines')
param vmPassword string
@secure()
@description('The REST API credential password for the HDInsight cluster gateway')
param restCredentialPassword string
resource blobService 'Microsoft.Storage/storageAccounts/blobServices@2022-09-01' existing = {
parent: storageAccount
name: 'default'
}
resource cluster 'Microsoft.HDInsight/clusters@2018-06-01-preview' = {
name: resourceName
location: location
properties: {
clusterDefinition: {
componentVersion: {
Spark: '2.4'
}
configurations: {
gateway: {
'restAuthCredential.isEnabled': true
'restAuthCredential.password': restCredentialPassword
'restAuthCredential.username': 'acctestusrgw'
}
}
kind: 'Spark'
}
clusterVersion: '4.0.3000.1'
computeProfile: {
roles: [
{
hardwareProfile: {
vmSize: 'standard_a4_v2'
}
name: 'headnode'
osProfile: {
linuxOperatingSystemProfile: {
password: vmPassword
username: vmUsername
}
}
targetInstanceCount: 2
}
{
hardwareProfile: {
vmSize: 'standard_a4_v2'
}
name: 'workernode'
osProfile: {
linuxOperatingSystemProfile: {
password: vmPassword
username: vmUsername
}
}
targetInstanceCount: 3
}
{
hardwareProfile: {
vmSize: 'standard_a2_v2'
}
name: 'zookeepernode'
osProfile: {
linuxOperatingSystemProfile: {
password: vmPassword
username: vmUsername
}
}
targetInstanceCount: 3
}
]
}
encryptionInTransitProperties: {
isEncryptionInTransitEnabled: false
}
minSupportedTlsVersion: '1.2'
osType: 'Linux'
storageProfile: {
storageaccounts: [
{
container: container.name
isDefault: true
key: storageAccount.listKeys().keys[0].value
name: '${storageAccount.name}.blob.core.windows.net'
resourceId: storageAccount.id
}
]
}
tier: 'standard'
}
}
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = {
name: resourceName
location: location
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
allowBlobPublicAccess: true
allowCrossTenantReplication: true
allowSharedKeyAccess: true
defaultToOAuthAuthentication: false
encryption: {
keySource: 'Microsoft.Storage'
services: {
queue: {
keyType: 'Service'
}
table: {
keyType: 'Service'
}
}
}
isHnsEnabled: false
isNfsV3Enabled: false
isSftpEnabled: false
minimumTlsVersion: 'TLS1_2'
networkAcls: {
defaultAction: 'Allow'
}
publicNetworkAccess: 'Enabled'
supportsHttpsTrafficOnly: true
}
sku: {
name: 'Standard_LRS'
}
}
resource container 'Microsoft.Storage/storageAccounts/blobServices/containers@2022-09-01' = {
parent: blobService
name: resourceName
properties: {
metadata: {
key: 'value'
}
}
}
Примеры быстрого запуска Azure
Следующие шаблоны быстрого запуска Azure содержат примеры Bicep для развертывания этого типа ресурса.
| Bicep-файл |
Описание |
|
Развертывание кластера HBase под управлением Linux в HDInsight |
Этот шаблон позволяет создать кластер HBase под управлением Linux в Azure HDInsight. |
|
Развертывание кластера Spark в Azure HDInsight |
Этот шаблон позволяет создать кластер Spark в Azure HDInsight. |
|
Развертывание межативного кластера Hive в HDInsight |
Этот шаблон позволяет создать межативный кластер Hive (LLAP) в HDInsight и зависимой учетной записи хранения Azure. Метод проверки подлинности SSH для кластера — это имя пользователя и пароль. Шаблон с помощью проверки подлинности открытого ключа SSH см. в статье /samples/azure/azure-quickstart-templates/hdinsight-linux-ssh-publickey |
|
Развертывание кластера HDInsight с помощью паролей хранилища и SSH |
Этот шаблон позволяет создать кластер Hadoop под управлением Linux в HDInsight и зависимой учетной записи хранения Azure. Метод проверки подлинности SSH для кластера — это имя пользователя и пароль. Шаблон с помощью проверки подлинности открытого ключа SSH см. в разделе /samples/azure/azure-quickstart-templates/hdinsight-linux-ssh-publickey/ |
|
Развертывание Kafka в HDInsight в виртуальной сети |
Этот шаблон позволяет создать виртуальную сеть Azure и Kafka в кластере HDInsight в виртуальной сети. Метод проверки подлинности SSH для кластера — это имя пользователя и пароль. Шаблон с помощью проверки подлинности открытого ключа SSH см. в разделе /samples/azure/azure-quickstart-templates/hdinsight-linux-ssh-publickey/ |
Определение ресурса шаблона ARM
Тип ресурсов кластеров можно развернуть с помощью операций, предназначенных для следующих операций:
Список измененных свойств в каждой версии API см. в журнала изменений.
Чтобы создать ресурс Microsoft.HDInsight/clusters, добавьте следующий код JSON в шаблон.
{
"type": "Microsoft.HDInsight/clusters",
"apiVersion": "2023-08-15-preview",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
"tenantId": "string"
}
}
},
"location": "string",
"properties": {
"clusterDefinition": {
"blueprint": "string",
"componentVersion": {
"{customized property}": "string"
},
"configurations": {},
"kind": "string"
},
"clusterVersion": "string",
"computeIsolationProperties": {
"enableComputeIsolation": "bool",
"hostSku": "string"
},
"computeProfile": {
"roles": [
{
"autoscale": {
"capacity": {
"maxInstanceCount": "int",
"minInstanceCount": "int"
},
"recurrence": {
"schedule": [
{
"days": [ "string" ],
"timeAndCapacity": {
"maxInstanceCount": "int",
"minInstanceCount": "int",
"time": "string"
}
}
],
"timeZone": "string"
}
},
"dataDisksGroups": [
{
"disksPerNode": "int"
}
],
"encryptDataDisks": "bool",
"hardwareProfile": {
"vmSize": "string"
},
"minInstanceCount": "int",
"name": "string",
"osProfile": {
"linuxOperatingSystemProfile": {
"password": "string",
"sshProfile": {
"publicKeys": [
{
"certificateData": "string"
}
]
},
"username": "string"
}
},
"scriptActions": [
{
"name": "string",
"parameters": "string",
"uri": "string"
}
],
"targetInstanceCount": "int",
"virtualNetworkProfile": {
"id": "string",
"subnet": "string"
},
"VMGroupName": "string"
}
]
},
"diskEncryptionProperties": {
"encryptionAlgorithm": "string",
"encryptionAtHost": "bool",
"keyName": "string",
"keyVersion": "string",
"msiResourceId": "string",
"vaultUri": "string"
},
"encryptionInTransitProperties": {
"isEncryptionInTransitEnabled": "bool"
},
"kafkaRestProperties": {
"clientGroupInfo": {
"groupId": "string",
"groupName": "string"
},
"configurationOverride": {
"{customized property}": "string"
}
},
"minSupportedTlsVersion": "string",
"networkProperties": {
"outboundDependenciesManagedType": "string",
"privateLink": "string",
"resourceProviderConnection": "string"
},
"osType": "string",
"privateLinkConfigurations": [
{
"name": "string",
"properties": {
"groupId": "string",
"ipConfigurations": [
{
"name": "string",
"properties": {
"primary": "bool",
"privateIPAddress": "string",
"privateIPAllocationMethod": "string",
"subnet": {
"id": "string"
}
}
}
]
}
}
],
"securityProfile": {
"aaddsResourceId": "string",
"clusterUsersGroupDNs": [ "string" ],
"directoryType": "string",
"domain": "string",
"domainUsername": "string",
"domainUserPassword": "string",
"ldapsUrls": [ "string" ],
"msiResourceId": "string",
"organizationalUnitDN": "string"
},
"storageProfile": {
"storageaccounts": [
{
"container": "string",
"enableSecureChannel": "bool",
"fileshare": "string",
"fileSystem": "string",
"isDefault": "bool",
"key": "string",
"msiResourceId": "string",
"name": "string",
"resourceId": "string",
"saskey": "string"
}
]
},
"tier": "string"
},
"tags": {
"{customized property}": "string"
},
"zones": [ "string" ]
}
Значения свойств
Microsoft.HDInsight/clusters
| Имя |
Описание |
Ценность |
| apiVersion |
Версия API |
«2023-08-15-превью» |
| тождество |
Удостоверение кластера, если настроено. |
clusterIdentity |
| местоположение |
Расположение кластера. |
струна |
| имя |
Имя ресурса |
строка (обязательно) |
| свойства |
Параметры создания кластера. |
ClusterCreatePropertiesOrClusterGetProperties |
| Теги |
Теги ресурсов |
Словарь имен и значений тегов. См. теги в шаблонах |
| тип |
Тип ресурса |
"Microsoft.HDInsight/clusters" |
| Зоны |
Зоны доступности. |
строка[] |
Автомасштабирование
АвтомасштабированиеCapacity
| Имя |
Описание |
Ценность |
| maxInstanceCount |
Максимальное число экземпляров кластера |
инт |
| minInstanceCount |
Минимальное количество экземпляров кластера |
инт |
АвтомасштабированиеRecurrence
| Имя |
Описание |
Ценность |
| расписание |
Массив правил автомасштабирования на основе расписания |
АвтомасштабированиеРасписание[] |
| часовой пояс |
Часовой пояс для времени автомасштабирования |
струна |
АвтомасштабированиеSchedule
| Имя |
Описание |
Ценность |
| Дни недели |
Дни недели для правила автомасштабирования на основе расписания |
Массив строк, содержащий любой из: "Пятница" "Понедельник" "Суббота" "Воскресенье" "Четверг" "Вторник" "Среда" |
| timeAndCapacity |
Время и емкость правила автомасштабирования на основе расписания |
AutoscaleTimeAndCapacity |
AutoscaleTimeAndCapacity
| Имя |
Описание |
Ценность |
| maxInstanceCount |
Максимальное число экземпляров кластера |
инт |
| minInstanceCount |
Минимальное количество экземпляров кластера |
инт |
| Время |
24-часовое время в форме xx:xx |
струна |
Информация о клиентской группе
| Имя |
Описание |
Ценность |
| идентификатор группы |
Идентификатор группы безопасности AAD. |
струна |
| имя группы |
Имя группы безопасности AAD. |
струна |
ClusterCreatePropertiesOrClusterGetProperties
Определение кластера
ClusterDefinitionComponentVersion (ClusterDefinitionComponentVersion)
ClusterIdentity (ClusterIdentity)
| Имя |
Описание |
Ценность |
| тип |
Тип удостоверения, используемого для кластера. Тип SystemAssigned, UserAssigned включает как неявное созданное удостоверение, так и набор назначенных пользователем удостоверений. |
"Нет" SystemAssigned SystemAssigned, UserAssigned UserAssigned |
| ИдентичностиНазначенныеПользователем |
Список удостоверений пользователей, связанных с кластером. Ссылки на ключ словаря удостоверений пользователя будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}". |
ClusterIdentityUserAssignedIdentities |
ClusterIdentityUserAssignedIdentities
Свойства ComputeIsolationProperties
| Имя |
Описание |
Ценность |
| enableComputeIsolation |
Флаг указывает, включена ли изоляция вычислений или нет. |
булевая переменная (bool) |
| hostSku |
SKU узла. |
струна |
Профиль вычислений
| Имя |
Описание |
Ценность |
| Роли |
Список ролей в кластере. |
роли[] |
DataDisksGroups
| Имя |
Описание |
Ценность |
| disksPerNode |
Количество дисков на узел. |
инт |
Свойства шифрования диска
| Имя |
Описание |
Ценность |
| шифрованиеАлгоритм |
Идентификатор алгоритма для шифрования по умолчанию RSA-OAEP. |
«ЮАР-ОАЭП» 'RSA-OAEP-256' "RSA1_5" |
| encryptionAtHost |
Указывает, включена ли шифрование диска ресурсов. |
булевая переменная (bool) |
| keyName |
Имя ключа, используемое для включения шифрования дисков. |
струна |
| keyVersion |
Определенная версия ключа, используемая для включения шифрования дисков. |
струна |
| msiResourceId |
Идентификатор ресурса управляемого удостоверения, который используется для доступа к хранилищу ключей. |
струна |
| vaultUri |
Базовый URI хранилища ключей, в котором находится ключ клиента, например. https://myvault.vault.azure.net |
струна |
EncryptionInTransitProperties
| Имя |
Описание |
Ценность |
| isEncryptionInTransitEnabled |
Указывает, шифруется ли обмен данными между узлами кластера при передаче. |
булевая переменная (bool) |
Профиль оборудования
| Имя |
Описание |
Ценность |
| vmSize |
Размер виртуальной машины |
струна |
IPConfiguration
| Имя |
Описание |
Ценность |
| имя |
Имя конфигурации IP-адреса приватного канала. |
строка (обязательно) |
| свойства |
Свойства конфигурации IP-адреса приватного канала. |
IPConfigurationProperties |
IPConfigurationProperties
| Имя |
Описание |
Ценность |
| первичный |
Указывает, является ли эта IP-конфигурация основной для соответствующей сетевой карты. |
булевая переменная (bool) |
| частныйIPПрессест |
IP-адрес. |
струна |
| privateIPAllocationMethod |
Метод, выделенный частным IP-адресом. |
"Динамический" "статический" |
| подсеть |
Идентификатор ресурса подсети. |
ResourceId (Идентификатор ресурса) |
KafkaRestСвойства
KafkaRestPropertiesConfigurationOverride
Профиль операционной системы Linux
| Имя |
Описание |
Ценность |
| пароль |
Пароль. |
струна |
| sshProfile |
Профиль SSH. |
Профиль sshProfile |
| имя пользователя |
Имя пользователя. |
струна |
Свойства сети
| Имя |
Описание |
Ценность |
| outboundDependenciesManagedType |
Значение, описывающее управление исходящими зависимостями кластера HDInsight. Managed означает, что исходящие зависимости управляются службой HDInsight. "Внешний" означает, что исходящие зависимости управляются определенным клиентом решением. |
"Внешний" "Managed" (Управляемый) |
| приватнаяссылка |
Указывает, включена ли частная ссылка. |
"Отключено" "Включено" |
| resourceProviderConnection |
Направление подключения поставщика ресурсов. |
"Входящий трафик" Исходящий трафик |
ОсПрофиль
PrivateLinkConfiguration (Конфигурация PrivateLink)
| Имя |
Описание |
Ценность |
| имя |
Имя конфигурации приватного канала. |
строка (обязательно) |
| свойства |
Свойства конфигурации приватного канала. |
PrivateLinkConfigurationProperties (обязательно) |
PrivateLinkConfigurationProperties (Свойства PrivateLinkConfiguration)
| Имя |
Описание |
Ценность |
| идентификатор группы |
Приватное имя подресурсов HDInsight для применения конфигурации приватного канала. Например, headnode, gateway, edgenode. |
строка (обязательно) |
| ipКонфигурации |
Ip-конфигурации для службы приватного канала. |
IPConfiguration[] (обязательно) |
ResourceId (Идентификатор ресурса)
| Имя |
Описание |
Ценность |
| идентификатор |
Идентификатор ресурса Azure. |
струна |
Роль
| Имя |
Описание |
Ценность |
| автомасштабирование |
Конфигурации автомасштабирования. |
автомасштабирование |
| dataDisksGroups |
Группы дисков данных для роли. |
DataDisksGroups[] |
| encryptDataDisks |
Указывает, шифруются ли диски данных. |
булевая переменная (bool) |
| hardwareProfile |
Профиль оборудования. |
Профиль оборудования |
| minInstanceCount |
Минимальное количество экземпляров кластера. |
инт |
| имя |
Имя роли. |
струна |
| osПрофиль |
Профиль операционной системы. |
ОсПрофиль |
| scriptActions |
Список действий скрипта для роли. |
Действие скрипта[] |
| targetInstanceCount |
Количество экземпляров кластера. |
инт |
| virtualNetworkProfile |
Профиль виртуальной сети. |
Профиль VirtualNetworkProfile |
| VMGroupName |
Имя группы виртуальных машин. |
струна |
Действие скрипта
| Имя |
Описание |
Ценность |
| имя |
Имя действия скрипта. |
строка (обязательно) |
| Параметры |
Параметры для предоставленного скрипта. |
строка (обязательно) |
| ури |
Универсальный код ресурса (URI) скрипта. |
строка (обязательно) |
Профиль безопасности
| Имя |
Описание |
Ценность |
| aaddsResourceId |
Идентификатор ресурса доменной службы Azure Active Directory пользователя. |
струна |
| clusterUsersGroupDNs |
Необязательный. Различающиеся имена для групп пользователей кластера |
строка[] |
| directoryType |
Тип каталога. |
"ActiveDirectory" |
| домен |
Домен Active Directory организации. |
струна |
| доменИмя пользователя |
Учетная запись пользователя домена, которая будет иметь права администратора в кластере. |
струна |
| domainUserPassword |
Пароль администратора домена. |
струна |
| ldapsUrls |
URL-адреса протокола LDAPS для взаимодействия с Active Directory. |
строка[] |
| msiResourceId |
Назначаемое пользователем удостоверение с разрешениями на чтение и создание артефактов, связанных с кластером, в AADDS пользователя. |
струна |
| организацияUnitDN |
Подразделение в Active Directory для размещения учетных записей кластера и служб. |
струна |
Профиль sshProfile
| Имя |
Описание |
Ценность |
| publicKeys |
Список открытых ключей SSH. |
SshPublicKey[] |
SshPublicKey (SshPublicKey)
| Имя |
Описание |
Ценность |
| certificateData |
Сертификат для SSH. |
струна |
учетная запись хранения
| Имя |
Описание |
Ценность |
| контейнер |
Контейнер в учетной записи хранения указывается только для учетных записей хранения WASB. |
струна |
| enableSecureChannel |
Включите безопасный канал или нет, это необязательное поле. Значение по умолчанию равно false, если версия кластера < 5.1 и true, если версия кластера >= 5.1 , |
булевая переменная (bool) |
| общий доступ к файлу |
Имя общей папки. |
струна |
| файловая система |
Файловая система должна быть указана только для Azure Data Lake Storage 2-го поколения. |
струна |
| isDefault |
Независимо от того, является ли учетная запись хранения учетной записью хранения по умолчанию. |
булевая переменная (bool) |
| ключ |
Ключ доступа к учетной записи хранения. |
струна |
| msiResourceId |
Управляемое удостоверение (MSI), которое разрешено получить доступ к учетной записи хранения, только для Azure Data Lake Storage 2-го поколения. |
струна |
| имя |
Имя учетной записи хранения. |
струна |
| идентификатор ресурса |
Идентификатор ресурса учетной записи хранения, только для Azure Data Lake Storage 2-го поколения. |
струна |
| Саски |
Ключ подписанного URL-адреса. |
струна |
Профиль хранилища
| Имя |
Описание |
Ценность |
| учетные записи хранилища |
Список учетных записей хранения в кластере. |
Учетная запись хранения[] |
Пользовательская назначенная идентичность
| Имя |
Описание |
Ценность |
| идентификатор арендатора |
Идентификатор клиента назначаемого пользователем удостоверения. |
струна |
Профиль VirtualNetworkProfile
| Имя |
Описание |
Ценность |
| идентификатор |
Идентификатор виртуальной сети. |
струна |
| подсеть |
Имя подсети. |
струна |
Примеры использования
Шаблоны быстрого запуска Azure
Следующие шаблоны быстрого запуска Azure развернуть этот тип ресурса.
Тип ресурсов кластеров можно развернуть с помощью операций, предназначенных для следующих операций:
Список измененных свойств в каждой версии API см. в журнала изменений.
Чтобы создать ресурс Microsoft.HDInsight/clusters, добавьте следующий объект Terraform в шаблон.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.HDInsight/clusters@2023-08-15-preview"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
clusterDefinition = {
blueprint = "string"
componentVersion = {
{customized property} = "string"
}
configurations = ?
kind = "string"
}
clusterVersion = "string"
computeIsolationProperties = {
enableComputeIsolation = bool
hostSku = "string"
}
computeProfile = {
roles = [
{
autoscale = {
capacity = {
maxInstanceCount = int
minInstanceCount = int
}
recurrence = {
schedule = [
{
days = [
"string"
]
timeAndCapacity = {
maxInstanceCount = int
minInstanceCount = int
time = "string"
}
}
]
timeZone = "string"
}
}
dataDisksGroups = [
{
disksPerNode = int
}
]
encryptDataDisks = bool
hardwareProfile = {
vmSize = "string"
}
minInstanceCount = int
name = "string"
osProfile = {
linuxOperatingSystemProfile = {
password = "string"
sshProfile = {
publicKeys = [
{
certificateData = "string"
}
]
}
username = "string"
}
}
scriptActions = [
{
name = "string"
parameters = "string"
uri = "string"
}
]
targetInstanceCount = int
virtualNetworkProfile = {
id = "string"
subnet = "string"
}
VMGroupName = "string"
}
]
}
diskEncryptionProperties = {
encryptionAlgorithm = "string"
encryptionAtHost = bool
keyName = "string"
keyVersion = "string"
msiResourceId = "string"
vaultUri = "string"
}
encryptionInTransitProperties = {
isEncryptionInTransitEnabled = bool
}
kafkaRestProperties = {
clientGroupInfo = {
groupId = "string"
groupName = "string"
}
configurationOverride = {
{customized property} = "string"
}
}
minSupportedTlsVersion = "string"
networkProperties = {
outboundDependenciesManagedType = "string"
privateLink = "string"
resourceProviderConnection = "string"
}
osType = "string"
privateLinkConfigurations = [
{
name = "string"
properties = {
groupId = "string"
ipConfigurations = [
{
name = "string"
properties = {
primary = bool
privateIPAddress = "string"
privateIPAllocationMethod = "string"
subnet = {
id = "string"
}
}
}
]
}
}
]
securityProfile = {
aaddsResourceId = "string"
clusterUsersGroupDNs = [
"string"
]
directoryType = "string"
domain = "string"
domainUsername = "string"
domainUserPassword = "string"
ldapsUrls = [
"string"
]
msiResourceId = "string"
organizationalUnitDN = "string"
}
storageProfile = {
storageaccounts = [
{
container = "string"
enableSecureChannel = bool
fileshare = "string"
fileSystem = "string"
isDefault = bool
key = "string"
msiResourceId = "string"
name = "string"
resourceId = "string"
saskey = "string"
}
]
}
tier = "string"
}
zones = [
"string"
]
}
}
Значения свойств
Microsoft.HDInsight/clusters
| Имя |
Описание |
Ценность |
| тождество |
Удостоверение кластера, если настроено. |
clusterIdentity |
| местоположение |
Расположение кластера. |
струна |
| имя |
Имя ресурса |
строка (обязательно) |
| свойства |
Параметры создания кластера. |
ClusterCreatePropertiesOrClusterGetProperties |
| Теги |
Теги ресурсов |
Словарь имен и значений тегов. |
| тип |
Тип ресурса |
"Microsoft.HDInsight/clusters@2023-08-15-preview" |
| Зоны |
Зоны доступности. |
строка[] |
Автомасштабирование
АвтомасштабированиеCapacity
| Имя |
Описание |
Ценность |
| maxInstanceCount |
Максимальное число экземпляров кластера |
инт |
| minInstanceCount |
Минимальное количество экземпляров кластера |
инт |
АвтомасштабированиеRecurrence
| Имя |
Описание |
Ценность |
| расписание |
Массив правил автомасштабирования на основе расписания |
АвтомасштабированиеРасписание[] |
| часовой пояс |
Часовой пояс для времени автомасштабирования |
струна |
АвтомасштабированиеSchedule
| Имя |
Описание |
Ценность |
| Дни недели |
Дни недели для правила автомасштабирования на основе расписания |
Массив строк, содержащий любой из: "Пятница" "Понедельник" "Суббота" "Воскресенье" "Четверг" "Вторник" "Среда" |
| timeAndCapacity |
Время и емкость правила автомасштабирования на основе расписания |
AutoscaleTimeAndCapacity |
AutoscaleTimeAndCapacity
| Имя |
Описание |
Ценность |
| maxInstanceCount |
Максимальное число экземпляров кластера |
инт |
| minInstanceCount |
Минимальное количество экземпляров кластера |
инт |
| Время |
24-часовое время в форме xx:xx |
струна |
Информация о клиентской группе
| Имя |
Описание |
Ценность |
| идентификатор группы |
Идентификатор группы безопасности AAD. |
струна |
| имя группы |
Имя группы безопасности AAD. |
струна |
ClusterCreatePropertiesOrClusterGetProperties
Определение кластера
ClusterDefinitionComponentVersion (ClusterDefinitionComponentVersion)
ClusterIdentity (ClusterIdentity)
| Имя |
Описание |
Ценность |
| тип |
Тип удостоверения, используемого для кластера. Тип SystemAssigned, UserAssigned включает как неявное созданное удостоверение, так и набор назначенных пользователем удостоверений. |
"Нет" SystemAssigned SystemAssigned, UserAssigned UserAssigned |
| ИдентичностиНазначенныеПользователем |
Список удостоверений пользователей, связанных с кластером. Ссылки на ключ словаря удостоверений пользователя будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}". |
ClusterIdentityUserAssignedIdentities |
ClusterIdentityUserAssignedIdentities
Свойства ComputeIsolationProperties
| Имя |
Описание |
Ценность |
| enableComputeIsolation |
Флаг указывает, включена ли изоляция вычислений или нет. |
булевая переменная (bool) |
| hostSku |
SKU узла. |
струна |
Профиль вычислений
| Имя |
Описание |
Ценность |
| Роли |
Список ролей в кластере. |
роли[] |
DataDisksGroups
| Имя |
Описание |
Ценность |
| disksPerNode |
Количество дисков на узел. |
инт |
Свойства шифрования диска
| Имя |
Описание |
Ценность |
| шифрованиеАлгоритм |
Идентификатор алгоритма для шифрования по умолчанию RSA-OAEP. |
«ЮАР-ОАЭП» 'RSA-OAEP-256' "RSA1_5" |
| encryptionAtHost |
Указывает, включена ли шифрование диска ресурсов. |
булевая переменная (bool) |
| keyName |
Имя ключа, используемое для включения шифрования дисков. |
струна |
| keyVersion |
Определенная версия ключа, используемая для включения шифрования дисков. |
струна |
| msiResourceId |
Идентификатор ресурса управляемого удостоверения, который используется для доступа к хранилищу ключей. |
струна |
| vaultUri |
Базовый URI хранилища ключей, в котором находится ключ клиента, например. https://myvault.vault.azure.net |
струна |
EncryptionInTransitProperties
| Имя |
Описание |
Ценность |
| isEncryptionInTransitEnabled |
Указывает, шифруется ли обмен данными между узлами кластера при передаче. |
булевая переменная (bool) |
Профиль оборудования
| Имя |
Описание |
Ценность |
| vmSize |
Размер виртуальной машины |
струна |
IPConfiguration
| Имя |
Описание |
Ценность |
| имя |
Имя конфигурации IP-адреса приватного канала. |
строка (обязательно) |
| свойства |
Свойства конфигурации IP-адреса приватного канала. |
IPConfigurationProperties |
IPConfigurationProperties
| Имя |
Описание |
Ценность |
| первичный |
Указывает, является ли эта IP-конфигурация основной для соответствующей сетевой карты. |
булевая переменная (bool) |
| частныйIPПрессест |
IP-адрес. |
струна |
| privateIPAllocationMethod |
Метод, выделенный частным IP-адресом. |
"Динамический" "статический" |
| подсеть |
Идентификатор ресурса подсети. |
ResourceId (Идентификатор ресурса) |
KafkaRestСвойства
KafkaRestPropertiesConfigurationOverride
Профиль операционной системы Linux
| Имя |
Описание |
Ценность |
| пароль |
Пароль. |
струна |
| sshProfile |
Профиль SSH. |
Профиль sshProfile |
| имя пользователя |
Имя пользователя. |
струна |
Свойства сети
| Имя |
Описание |
Ценность |
| outboundDependenciesManagedType |
Значение, описывающее управление исходящими зависимостями кластера HDInsight. Managed означает, что исходящие зависимости управляются службой HDInsight. "Внешний" означает, что исходящие зависимости управляются определенным клиентом решением. |
"Внешний" "Managed" (Управляемый) |
| приватнаяссылка |
Указывает, включена ли частная ссылка. |
"Отключено" "Включено" |
| resourceProviderConnection |
Направление подключения поставщика ресурсов. |
"Входящий трафик" Исходящий трафик |
ОсПрофиль
PrivateLinkConfiguration (Конфигурация PrivateLink)
| Имя |
Описание |
Ценность |
| имя |
Имя конфигурации приватного канала. |
строка (обязательно) |
| свойства |
Свойства конфигурации приватного канала. |
PrivateLinkConfigurationProperties (обязательно) |
PrivateLinkConfigurationProperties (Свойства PrivateLinkConfiguration)
| Имя |
Описание |
Ценность |
| идентификатор группы |
Приватное имя подресурсов HDInsight для применения конфигурации приватного канала. Например, headnode, gateway, edgenode. |
строка (обязательно) |
| ipКонфигурации |
Ip-конфигурации для службы приватного канала. |
IPConfiguration[] (обязательно) |
ResourceId (Идентификатор ресурса)
| Имя |
Описание |
Ценность |
| идентификатор |
Идентификатор ресурса Azure. |
струна |
Роль
| Имя |
Описание |
Ценность |
| автомасштабирование |
Конфигурации автомасштабирования. |
автомасштабирование |
| dataDisksGroups |
Группы дисков данных для роли. |
DataDisksGroups[] |
| encryptDataDisks |
Указывает, шифруются ли диски данных. |
булевая переменная (bool) |
| hardwareProfile |
Профиль оборудования. |
Профиль оборудования |
| minInstanceCount |
Минимальное количество экземпляров кластера. |
инт |
| имя |
Имя роли. |
струна |
| osПрофиль |
Профиль операционной системы. |
ОсПрофиль |
| scriptActions |
Список действий скрипта для роли. |
Действие скрипта[] |
| targetInstanceCount |
Количество экземпляров кластера. |
инт |
| virtualNetworkProfile |
Профиль виртуальной сети. |
Профиль VirtualNetworkProfile |
| VMGroupName |
Имя группы виртуальных машин. |
струна |
Действие скрипта
| Имя |
Описание |
Ценность |
| имя |
Имя действия скрипта. |
строка (обязательно) |
| Параметры |
Параметры для предоставленного скрипта. |
строка (обязательно) |
| ури |
Универсальный код ресурса (URI) скрипта. |
строка (обязательно) |
Профиль безопасности
| Имя |
Описание |
Ценность |
| aaddsResourceId |
Идентификатор ресурса доменной службы Azure Active Directory пользователя. |
струна |
| clusterUsersGroupDNs |
Необязательный. Различающиеся имена для групп пользователей кластера |
строка[] |
| directoryType |
Тип каталога. |
"ActiveDirectory" |
| домен |
Домен Active Directory организации. |
струна |
| доменИмя пользователя |
Учетная запись пользователя домена, которая будет иметь права администратора в кластере. |
струна |
| domainUserPassword |
Пароль администратора домена. |
струна |
| ldapsUrls |
URL-адреса протокола LDAPS для взаимодействия с Active Directory. |
строка[] |
| msiResourceId |
Назначаемое пользователем удостоверение с разрешениями на чтение и создание артефактов, связанных с кластером, в AADDS пользователя. |
струна |
| организацияUnitDN |
Подразделение в Active Directory для размещения учетных записей кластера и служб. |
струна |
Профиль sshProfile
| Имя |
Описание |
Ценность |
| publicKeys |
Список открытых ключей SSH. |
SshPublicKey[] |
SshPublicKey (SshPublicKey)
| Имя |
Описание |
Ценность |
| certificateData |
Сертификат для SSH. |
струна |
учетная запись хранения
| Имя |
Описание |
Ценность |
| контейнер |
Контейнер в учетной записи хранения указывается только для учетных записей хранения WASB. |
струна |
| enableSecureChannel |
Включите безопасный канал или нет, это необязательное поле. Значение по умолчанию равно false, если версия кластера < 5.1 и true, если версия кластера >= 5.1 , |
булевая переменная (bool) |
| общий доступ к файлу |
Имя общей папки. |
струна |
| файловая система |
Файловая система должна быть указана только для Azure Data Lake Storage 2-го поколения. |
струна |
| isDefault |
Независимо от того, является ли учетная запись хранения учетной записью хранения по умолчанию. |
булевая переменная (bool) |
| ключ |
Ключ доступа к учетной записи хранения. |
струна |
| msiResourceId |
Управляемое удостоверение (MSI), которое разрешено получить доступ к учетной записи хранения, только для Azure Data Lake Storage 2-го поколения. |
струна |
| имя |
Имя учетной записи хранения. |
струна |
| идентификатор ресурса |
Идентификатор ресурса учетной записи хранения, только для Azure Data Lake Storage 2-го поколения. |
струна |
| Саски |
Ключ подписанного URL-адреса. |
струна |
Профиль хранилища
| Имя |
Описание |
Ценность |
| учетные записи хранилища |
Список учетных записей хранения в кластере. |
Учетная запись хранения[] |
Пользовательская назначенная идентичность
| Имя |
Описание |
Ценность |
| идентификатор арендатора |
Идентификатор клиента назначаемого пользователем удостоверения. |
струна |
Профиль VirtualNetworkProfile
| Имя |
Описание |
Ценность |
| идентификатор |
Идентификатор виртуальной сети. |
струна |
| подсеть |
Имя подсети. |
струна |
Примеры использования
Простой пример развертывания кластера HDInsight.
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
variable "vm_username" {
type = string
description = "The username for the HDInsight cluster virtual machines"
}
variable "vm_password" {
type = string
description = "The password for the HDInsight cluster virtual machines"
sensitive = true
}
variable "rest_credential_password" {
type = string
description = "The REST API credential password for the HDInsight cluster gateway"
sensitive = true
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "storageAccount" {
type = "Microsoft.Storage/storageAccounts@2021-09-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
kind = "StorageV2"
properties = {
accessTier = "Hot"
allowBlobPublicAccess = true
allowCrossTenantReplication = true
allowSharedKeyAccess = true
defaultToOAuthAuthentication = false
encryption = {
keySource = "Microsoft.Storage"
services = {
queue = {
keyType = "Service"
}
table = {
keyType = "Service"
}
}
}
isHnsEnabled = false
isNfsV3Enabled = false
isSftpEnabled = false
minimumTlsVersion = "TLS1_2"
networkAcls = {
defaultAction = "Allow"
}
publicNetworkAccess = "Enabled"
supportsHttpsTrafficOnly = true
}
sku = {
name = "Standard_LRS"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
data "azapi_resource_action" "listKeys" {
type = "Microsoft.Storage/storageAccounts@2021-09-01"
resource_id = azapi_resource.storageAccount.id
action = "listKeys"
response_export_values = ["*"]
}
data "azapi_resource" "blobService" {
type = "Microsoft.Storage/storageAccounts/blobServices@2022-09-01"
parent_id = azapi_resource.storageAccount.id
name = "default"
}
resource "azapi_resource" "container" {
type = "Microsoft.Storage/storageAccounts/blobServices/containers@2022-09-01"
name = var.resource_name
parent_id = data.azapi_resource.blobService.id
body = {
properties = {
metadata = {
key = "value"
}
}
}
response_export_values = ["*"]
}
resource "azapi_resource" "cluster" {
type = "Microsoft.HDInsight/clusters@2018-06-01-preview"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
clusterDefinition = {
componentVersion = {
Spark = "2.4"
}
configurations = {
gateway = {
"restAuthCredential.isEnabled" = true
"restAuthCredential.password" = var.rest_credential_password
"restAuthCredential.username" = "acctestusrgw"
}
}
kind = "Spark"
}
clusterVersion = "4.0.3000.1"
computeProfile = {
roles = [
{
hardwareProfile = {
vmSize = "standard_a4_v2"
}
name = "headnode"
osProfile = {
linuxOperatingSystemProfile = {
password = var.vm_password
username = var.vm_username
}
}
targetInstanceCount = 2
},
{
hardwareProfile = {
vmSize = "standard_a4_v2"
}
name = "workernode"
osProfile = {
linuxOperatingSystemProfile = {
password = var.vm_password
username = var.vm_username
}
}
targetInstanceCount = 3
},
{
hardwareProfile = {
vmSize = "standard_a2_v2"
}
name = "zookeepernode"
osProfile = {
linuxOperatingSystemProfile = {
password = var.vm_password
username = var.vm_username
}
}
targetInstanceCount = 3
},
]
}
encryptionInTransitProperties = {
isEncryptionInTransitEnabled = false
}
minSupportedTlsVersion = "1.2"
osType = "Linux"
storageProfile = {
storageaccounts = [
{
container = azapi_resource.container.name
isDefault = true
key = data.azapi_resource_action.listKeys.output.keys[0].value
name = "${azapi_resource.storageAccount.name}.blob.core.windows.net"
resourceId = azapi_resource.storageAccount.id
},
]
}
tier = "standard"
}
}
schema_validation_enabled = false
response_export_values = ["*"]
timeouts {
create = "180m"
update = "180m"
delete = "60m"
}
}