尝试使用ARM模板自动化Azure部署 [英] Trying to automate Azure deployment using ARM Templates
问题描述
亲爱的专家,
我正在尝试从ARM模板自动化SQL数据库部署,我尝试在修改后将两个模板组合在一起。
这适用于在同一模板中包含审核和高级威胁检测。我使用了可用的快速启动模板。但是,我在其中一个步骤中不断收到一个错误的请求错误。你能帮忙吗?这是与高级
威胁检测相关的步骤。 (代码中的最后一部分)。该代码与 " storageContainerPath"相关联。和"storageAccountAccessKey"以及与"漏洞评估"相关的部分。你可以帮忙修改代码吗?
" $ schema":" http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#" ;,
"contentVersion":" 1.0.0.0",$
"参数":{
$
" serverName":{
"type":" string",&
" defaultValue":" yourservername",&b $ b "元数据":{
"description":"要创建的新数据库服务器的名称。"&
}
},...
"serverLocation":{
"type":" string",&
" defaultValue":" West Europe",
"元数据":{
"description":"数据库服务器的位置"。"
}
},...
"administratorLogin":{
"type":" string",&
" defaultValue":" VeryWiseAdmin",&
"元数据":{
"description":"用于数据库服务器管理员的帐户名称。"&
}
},...
"administratorLoginPassword":{
" type":" securestring",&
" defaultValue":" password",&b $ b "元数据":{
"description":"用于数据库服务器管理员的密码。"
}
},...
"databaseName":{
"type":" string",&
" defaultValue":" dbname",
"元数据":{
" description" ;:"要创建的新数据库的名称。"&b $ b }
},...
"整理":{
"type":" string",&
" defaultValue" ;:\"SQL_Latin1_General_CP1_CI_AS&\",,,
"元数据":{
"description":"用于管理正确使用字符的数据库排序规则"。
}
},...
"edition":{
"type":" string",&
" defaultValue":" Basic",&
"元数据":{
"description":"要创建的数据库类型。可用选项包括:Web,Business,Basic,Standard和Premium。" b
}
},b $ b "emailAddresses":{
"type":" array",
" defaultValue":[
" user1@example.com" " user2@example.com"
],$
"元数据":{
"描述":"用于接收提醒和扫描报告的电子邮件地址"和"b $ b }
},b $ b " emailAdmins":{
"type":" bool",
" defaultValue":true,
"元数据":{
"描述":"电子邮件服务和共同管理员"
$
}
},...
" maxSizeBytes":{
"type":" string",&
" defaultValue":" 1073741824",&b $ b "元数据":{
"description":"数据库的最大大小(以字节为单位)"
}
},...
"requestedServiceObjectiveName":{
"type":" string",&
" defaultValue":" Basic",&
"元数据":{
"description":"与编辑性能级别对应的名称。可用选项包括:共享,基本,S0,S1,S2,S3,P1,P2和P3。"
$
}
},...
" storageAccountName":{
"type":" string",&
" defaultValue":" storageaccountname"
},...
"storageEndpoint":{
"type":" string",&
" defaultValue":" [concat('https://',parameters('storageAccountName'),'。blob.core.windows.net')]"
  },...
" storageType":{
"type":" string",&
" defaultValue":" Standard_GRS",&
" allowedValues":[
" Standard_LRS",
" Standard_ZRS",
" Standard_GRS",
" Standard_RAGRS",
" Premium_LRS"
]¥b $ b }¥b $ b },b $ b "变量":{
""serverName":"[toLower(parameters('serverName'))]",
"emailAddresses":" [parameters('emailAddresses')]"
$
},b $ b "资源":[
{
" name":" [parameters('storageAccountName')]",
" type" ;:\"Microsoft.Storage/storageAccounts" ;,
"location":" [parameters('serverLocation')]",
"apiVersion":" 2015-06-15",&b $ b "dependsOn":[" [concat('Microsoft.Sql / servers /',parameters('serverName'))]" ],$
"properties":{
" accountType":" [parameters('storageType')]"
}
},...
{
" name":"[parameters('serverName')]",$
"type":"Microsoft.Sql / servers","
"location":" [parameters('serverLocation')]",
"apiVersion":"2014-04-01-preview","
"properties":{
"administratorLogin":" [parameters('administratorLogin')]",
"administratorLoginPassword":" [parameters('administratorLoginPassword')]",
"version":" 12.0"
},...
"资源":[
{
" name":"[parameters('databaseName')]",$
"type":""数据库","
"location":" [parameters('serverLocation')]",
"apiVersion":" 2014-04-01-preview",&
"dependsOn":[
" [concat('Microsoft.Sql / servers /',parameters('serverName'))]"
],&
"properties":{
"edition":" [parameters('edition')]",
"collation":" [parameters('collation')]",
" maxSizeBytes":" [parameters('maxSizeBytes')]",
"requestedServiceObjectiveName":" [parameters('requestedServiceObjectiveName')]"
},...
"资源":[
{
" apiVersion" ;:" 2015年5月1日,预览和QUOT ;,
              "type""" auditingSettings",
"姓名":""默认",&
"位置" ;:" [参数( 'serverLocation')]" ;,
               "dependsOn":[
" [concat('Microsoft.Sql / servers /',parameters('serverName'))]",$
;       " [concat('Microsoft.Sql / servers /',parameters('serverName'),'/ databases /',parameters('databaseName'))]",
              " [concat('Microsoft.Storage/storageAccounts /',parameters('storageAccountName'))]"
     ],&
"properties":{
"状态" ;:"启用" ;,
                " storageEndpoint":" [parameters('storageEndpoint')]",
    " storageAccountAccessKey":" [listKeys(resourceId('Microsoft.Storage/storageAccounts',parameters('storageAccountName')),providers('Microsoft.Storage',
'storageAccounts')。apiVersions [0]) .keys [0] .value]",
" retentionDays":0,
" auditActionsAndGroups":[" SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP"," DATABASE_LOGOUT_GROUP"," USER_CHANGE_PASSWORD_GROUP" ],$
" storageAccountSubscriptionId" ;:" [订阅()subscriptionId。] QUOT ;,
            &NBSP ;   " isStorageSecondaryKeyInUse" ;:假
              }
}
]¥b $ b },$
{
"apiVersion":" 2014-04-01-preview",&
"type""" firewallrules",&
"location":" [parameters('serverLocation')]",
" name":" AllowAllWindowsAzureIps",
"dependsOn":[
" [concat('Microsoft.Sql / servers /',parameters('serverName'))]"
],&
"properties":{
" endIpAddress":" 0.0.0.0",&
" startIpAddress":" 0.0.0.0"
}
},$
{
"apiVersion":" 2015-05-01-preview",&
"type""" auditingSettings",
"name":""Default",&
"location":" [parameters('serverLocation')]",
"dependsOn":[
" [concat('Microsoft.Sql / servers /',parameters('serverName'))]",$
;   " [concat('Microsoft.Storage/storageAccounts /',parameters('storageAccountName'))]"
],&
"properties":{
"州":"已启用","
" storageEndpoint" ;:" [参数(" storageEndpoint")]" ;,
            " storageAccountAccessKey":" [listKeys(resourceId('Microsoft.Storage/storageAccounts',parameters('storageAccountName')),providers('Microsoft.Storage','storageAccounts')。apiVersions [0])。keys [0 ] .value]",
"retentionDays":0,
" auditActionsAndGroups" ;: null,b $ b " storageAccountSubscriptionId"" [subscription()。subscriptionId]",
" isStorageSecondaryKeyInUse":false
}
},b $ b {
                    " apiVersion" ;:" 2017年3月1日,预览和QUOT ;,
                     "类型" ;:" securityAlertPolicies" ;,
                     "name"":"DefaultAtpTemplate",&
    " dependsOn" ;: [
                         " [变量( 'SERVERNAME')]"
                     ],
                    "properties":{
      "状态" ;:"启用" ;,
                         "emailAddresses":" [variables('emailAddresses')]",
            " emailAccountAdmins" ;:" [参数( 'emailAdmins')]"
            &NBSP ;       }
},...
{
                    "名称" ;:" DefaultAtpTemplate" ;,
                     "类型" ;:" vulnerabilityAssessments" ;,
                     "apiVersion":" 2018-06-01-preview",
       " dependsOn" ;: [
                         " [变量( 'SERVERNAME')]" ;,
              &NBSP ;         " [concat('Microsoft.Storage/storageAccounts/',parameters('storageAccountName'))]"
           ],
                    "properties":{
    " storageContainerPath" ;:" [CONCAT(参考(RESOURCEID( 'Microsoft.Storage/storageAccounts',参数( 'storageAccountName'))),
'漏洞评估')]" ;,
" storageAccountAccessKey":" [listKeys(resourceId('Microsoft.Storage/storageAccounts',parameters('storageAccountName')),providers('Microsoft.Storage',
'storageAccounts')。apiVersions [0]) .keys [0]。价值] QUOT ;,
               &NBSP ;        " recurringScans" ;: {
                             "的IsEnabled" ;:真,
                 &NBSP ;          " emailSubscriptionAdmins" ;:" [参数( 'emailAdmins')]" ;,
                             "电子邮件":" [variables('emailAddresses')]",
                " storageAccountSubscriptionId" ;:" [订阅()subscriptionId。] QUOT ;,
            &NBSP ;               " isStorageSecondaryKeyInUse":false
      }
                    }
}
请发布完整的错误消息
hth
Marcin
Dear Experts,
I am trying to automate SQL DB deployment from ARM templates and I tried to club two templates together after modifying.
This is for including auditing and advanced threat detection in the same template. I used the quick start templates that are available. However, I keep getting one bad request error in one of the steps. Can you please help. That is the step related to advanced threat detection. (The last section in the code). The code is related to the "storageContainerPath" and "storageAccountAccessKey and section related to "vulnerability-assessment". Can you please help in fixing the code?
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serverName": {
"type": "string",
"defaultValue": "yourservername",
"metadata": {
"description": "The name of the new database server to create."
}
},
"serverLocation": {
"type": "string",
"defaultValue": "West Europe",
"metadata": {
"description": "The location of the database server."
}
},
"administratorLogin": {
"type": "string",
"defaultValue": "VeryWiseAdmin",
"metadata": {
"description": "The account name to use for the database server administrator."
}
},
"administratorLoginPassword": {
"type": "securestring",
"defaultValue": "password",
"metadata": {
"description": "The password to use for the database server administrator."
}
},
"databaseName": {
"type": "string",
"defaultValue": "dbname",
"metadata": {
"description": "The name of the new database to create."
}
},
"collation": {
"type": "string",
"defaultValue": "SQL_Latin1_General_CP1_CI_AS",
"metadata": {
"description": "The database collation for governing the proper use of characters."
}
},
"edition": {
"type": "string",
"defaultValue": "Basic",
"metadata": {
"description": "The type of database to create. The available options are: Web, Business, Basic, Standard, and Premium."
}
},
"emailAddresses": {
"type": "array",
"defaultValue": [
"user1@example.com",
"user2@example.com"
],
"metadata": {
"description": "Email addresses to receive alerts and scan reports"
}
},
"emailAdmins": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Email service and co-administrators"
}
},
"maxSizeBytes": {
"type": "string",
"defaultValue": "1073741824",
"metadata": {
"description": "The maximum size, in bytes, for the database"
}
},
"requestedServiceObjectiveName": {
"type": "string",
"defaultValue": "Basic",
"metadata": {
"description": "The name corresponding to the performance level for edition. The available options are: Shared, Basic, S0, S1, S2, S3, P1, P2, and P3."
}
},
"storageAccountName": {
"type": "string",
"defaultValue": "storageaccountname"
},
"storageEndpoint": {
"type": "string",
"defaultValue": "[concat('https://',parameters('storageAccountName'),'.blob.core.windows.net')]"
},
"storageType": {
"type": "string",
"defaultValue": "Standard_GRS",
"allowedValues": [
"Standard_LRS",
"Standard_ZRS",
"Standard_GRS",
"Standard_RAGRS",
"Premium_LRS"
]
}
},
"variables": {
"serverName": "[toLower(parameters('serverName'))]",
"emailAddresses": "[parameters('emailAddresses')]"
},
"resources": [
{
"name": "[parameters('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"location": "[parameters('serverLocation')]",
"apiVersion": "2015-06-15",
"dependsOn": [ "[concat('Microsoft.Sql/servers/', parameters('serverName'))]" ],
"properties": {
"accountType": "[parameters('storageType')]"
}
},
{
"name": "[parameters('serverName')]",
"type": "Microsoft.Sql/servers",
"location": "[parameters('serverLocation')]",
"apiVersion": "2014-04-01-preview",
"properties": {
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"version": "12.0"
},
"resources": [
{
"name": "[parameters('databaseName')]",
"type": "databases",
"location": "[parameters('serverLocation')]",
"apiVersion": "2014-04-01-preview",
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('serverName'))]"
],
"properties": {
"edition": "[parameters('edition')]",
"collation": "[parameters('collation')]",
"maxSizeBytes": "[parameters('maxSizeBytes')]",
"requestedServiceObjectiveName": "[parameters('requestedServiceObjectiveName')]"
},
"resources": [
{
"apiVersion": "2015-05-01-preview",
"type": "auditingSettings",
"name": "Default",
"location": "[parameters('serverLocation')]",
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('serverName'))]",
"[concat('Microsoft.Sql/servers/', parameters('serverName'), '/databases/',parameters('databaseName'))]",
"[concat('Microsoft.Storage/storageAccounts/',parameters('storageAccountName'))]"
],
"properties": {
"State": "Enabled",
"storageEndpoint": "[parameters('storageEndpoint')]",
"storageAccountAccessKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]",
"retentionDays": 0,
"auditActionsAndGroups": [ "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP", "DATABASE_LOGOUT_GROUP", "USER_CHANGE_PASSWORD_GROUP" ],
"storageAccountSubscriptionId": "[subscription().subscriptionId]",
"isStorageSecondaryKeyInUse": false
}
}
]
},
{
"apiVersion": "2014-04-01-preview",
"type": "firewallrules",
"location": "[parameters('serverLocation')]",
"name": "AllowAllWindowsAzureIps",
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('serverName'))]"
],
"properties": {
"endIpAddress": "0.0.0.0",
"startIpAddress": "0.0.0.0"
}
},
{
"apiVersion": "2015-05-01-preview",
"type": "auditingSettings",
"name": "Default",
"location": "[parameters('serverLocation')]",
"dependsOn": [
"[concat('Microsoft.Sql/servers/', parameters('serverName'))]",
"[concat('Microsoft.Storage/storageAccounts/',parameters('storageAccountName'))]"
],
"properties": {
"State": "Enabled",
"storageEndpoint": "[parameters('storageEndpoint')]",
"storageAccountAccessKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]",
"retentionDays": 0,
"auditActionsAndGroups": null,
"storageAccountSubscriptionId": "[subscription().subscriptionId]",
"isStorageSecondaryKeyInUse": false
}
},
{
"apiVersion": "2017-03-01-preview",
"type": "securityAlertPolicies",
"name": "DefaultAtpTemplate",
"dependsOn": [
"[variables('serverName')]"
],
"properties": {
"state": "Enabled",
"emailAddresses": "[variables('emailAddresses')]",
"emailAccountAdmins": "[parameters('emailAdmins')]"
}
},
{
"name": "DefaultAtpTemplate",
"type": "vulnerabilityAssessments",
"apiVersion": "2018-06-01-preview",
"dependsOn": [
"[variables('serverName')]",
"[concat('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]"
],
"properties": {
"storageContainerPath": "[concat(reference(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))), 'vulnerability-assessment')]",
"storageAccountAccessKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]",
"recurringScans": {
"isEnabled": true,
"emailSubscriptionAdmins": "[parameters('emailAdmins')]",
"emails": "[variables('emailAddresses')]",
"storageAccountSubscriptionId": "[subscription().subscriptionId]",
"isStorageSecondaryKeyInUse": false
}
}
}
Pls post the full error message
hth
Marcin
这篇关于尝试使用ARM模板自动化Azure部署的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!