From 51d41446f75cf8fbfcfba3ea58292d85aa84a55f Mon Sep 17 00:00:00 2001 From: dwas01 Date: Mon, 23 Sep 2019 16:53:20 +1200 Subject: [PATCH] analysis.service module updates --- Modules/APIManagement/2.0/deploy.json | 14 +- Modules/APIManagement/2.0/readme.md | 26 ++-- .../analysis.services.akv.secrects.ps1 | 136 ------------------ .../2.0/Scripts/git_placeholder.md | 0 Modules/AnalysisServices/2.0/deploy.json | 52 ++----- Modules/AnalysisServices/2.0/readme.md | 21 ++- 6 files changed, 38 insertions(+), 211 deletions(-) delete mode 100644 Modules/AnalysisServices/2.0/Scripts/analysis.services.akv.secrects.ps1 create mode 100644 Modules/AnalysisServices/2.0/Scripts/git_placeholder.md diff --git a/Modules/APIManagement/2.0/deploy.json b/Modules/APIManagement/2.0/deploy.json index 10577b5..f601af7 100644 --- a/Modules/APIManagement/2.0/deploy.json +++ b/Modules/APIManagement/2.0/deploy.json @@ -5,7 +5,7 @@ "apiManagementServiceName": { "type": "string", "metadata": { - "description": "Required. The name of the of the API Management service" + "description": "Required. The name of the of the Api Management service" } }, "publisherEmail": { @@ -30,7 +30,7 @@ ], "defaultValue": "Developer", "metadata": { - "description": "Optional.The pricing tier of this API Management service" + "description": "Optional.The pricing tier of this Api Management service" } }, "skuCount": { @@ -41,14 +41,14 @@ ], "defaultValue": "1", "metadata": { - "description": "Optional.The instance size of this API Management service" + "description": "Optional.The instance size of this Api Management service" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { - "description": "Optional. Location of the API Management service" + "description": "Optional. Location for all Resources" } }, "diagnosticStorageAccountId": { @@ -184,21 +184,21 @@ "type": "string", "value": "[variables('apimServiceName')]", "metadata": { - "description": "The API Management Service Name" + "description": "The Api Management Service Name" } }, "apimServiceResourceId": { "type": "string", "value": "[variables('apimServiceResourceId')]", "metadata": { - "description": "The Resource Id of the API Management Service" + "description": "The Resource Id of the Api Management Service" } }, "apimServiceResourceGroup": { "type": "string", "value": "[resourceGroup().name]", "metadata": { - "description": "The name of the Resource Group with the API Management Service" + "description": "The name of the Resource Group with the Api Management Service" } } } diff --git a/Modules/APIManagement/2.0/readme.md b/Modules/APIManagement/2.0/readme.md index d4d534c..c695755 100644 --- a/Modules/APIManagement/2.0/readme.md +++ b/Modules/APIManagement/2.0/readme.md @@ -1,6 +1,6 @@ -# API Management +# Api Management -This module deploys API Management. +This module deploys Api Management. ## Resources @@ -13,12 +13,13 @@ The following Resources are deployed. | Parameter Name | Default Value | Required | Description | | :- | :- | :- |:- | -| `apiManagementServiceName` || **Required** | The name of the of the API Management Service +| `apiManagementServiceName` || **Required** | The name of the of the Api Management Service | `publisherEmail` || **Required** | The email address of the owner of the service | `publisherName` || **Required** | The name of the owner of the service -| `sku` | Developer | **Optional** | The pricing tier of this API Management service -| `skuCount` | 1 | **Optional** | The instance size of this API Management service -| `location` | resourceGroup().location | **Optional** | Location for all resources +| `notificationSenderEmail` || **Optional** | The notification sender email address for the service +| `sku` | Developer | **Optional** | The pricing tier of this Api Management service +| `skuCount` | 1 | **Optional** | The instance size of this Api Management service +| `location` | resourceGroup().location | **Optional** | Location for all Resources" | `diagnosticStorageAccountId` || **Required** | Resource identifier of the Diagnostic Storage Account | `logAnalyticsWorkspaceId` || **Required** | Resource identifier of Log Analytics Workspace | `logsRetentionInDays` | 30 | **Optional** | Specifies the number of days that logs will be kept for, a value of 0 will retain data indefinitely @@ -29,13 +30,13 @@ The following Resources are deployed. | Output Name | Description | | :- | :- | -| `apimServiceName` | API Management Service Name output parameter -| `apimServiceResourceId` | API Management Service ResourceId output parameter -| `apimServiceResourceGroup` | API Management Service ResourceGroup output parameter +| `apimServiceName` | Api Management Service Name output parameter +| `apimServiceResourceId` | Api Management Service ResourceId output parameter +| `apimServiceResourceGroup` | Api Management Service ResourceGroup output parameter ## Scripts -+ There is no scripts for this Module. ++ There is no deployment considerations for this Module. ## Considerations @@ -43,6 +44,5 @@ The following Resources are deployed. ## Additional resources -[Microsoft API Management template reference](https://docs.microsoft.com/en-us/azure/templates/microsoft.apimanagement/allversions) -[Microsoft API Management diagnostic settings reference](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-use-azure-monitor#diagnostic-logs) - ++ [Microsoft Api Management template reference](https://docs.microsoft.com/en-us/azure/templates/microsoft.apimanagement/allversions) ++ [Microsoft Api Management diagnostic settings reference](https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-use-azure-monitor#diagnostic-logs) diff --git a/Modules/AnalysisServices/2.0/Scripts/analysis.services.akv.secrects.ps1 b/Modules/AnalysisServices/2.0/Scripts/analysis.services.akv.secrects.ps1 deleted file mode 100644 index e990aa9..0000000 --- a/Modules/AnalysisServices/2.0/Scripts/analysis.services.akv.secrects.ps1 +++ /dev/null @@ -1,136 +0,0 @@ -<# - .NOTES - ============================================================================================== - Copyright(c) Microsoft Corporation. All rights reserved. - - Microsoft Consulting Services - AzureCAT - VDC Toolkit (v2.0) - - File: analysis.services.akv.secrects.ps1 - - Purpose: Set Analysis Services Secrets Automation Script - - Version: 2.0.0.0 - 1st August 2019 - Azure Virtual Datacenter Development Team - ============================================================================================== - - .SYNOPSIS - Set Analysis Services Key Vault Secrets Automation Script - - .DESCRIPTION - Set Analysis Services Key Vault Secrets Automation Script - - Deployment steps of the script are outlined below. - 1) Set Azure KeyVault Parameters - 2) Set Analysis Services Parameters - 3) Create Azure KeyVault Secret - - .PARAMETER keyVaultName - Specify the Azure KeyVault Name parameter. - - .PARAMETER analysisServicesName - Specify the Analysis Services Name output parameter. - - .PARAMETER analysisServicesResourceId - Specify the Analysis Services ResourceId output parameter. - - .PARAMETER analysisServicesResourceGroup - Specify the Analysis Services ResourceGroup output parameter. - - .EXAMPLE - Default: - C:\PS>.\analysis.services.akv.secrects.ps1 - -keyVaultName "$(keyVaultName)" - -analysisServicesName "$(analysisServicesName)" - -analysisServicesResourceId "$(analysisServicesResourceId)" - -analysisServicesResourceGroup "$(analysisServicesResourceGroup)" -#> - -#Requires -Version 5 -#Requires -Module Az.KeyVault - -[CmdletBinding()] -param -( - [Parameter(Mandatory = $false)] - [string]$keyVaultName, - - [Parameter(Mandatory = $false)] - [string]$analysisServicesName, - - [Parameter(Mandatory = $false)] - [string]$analysisServicesResourceId, - - [Parameter(Mandatory = $false)] - [string]$analysisServicesResourceGroup -) - -#region - Key Vault Parameters -if (-not [string]::IsNullOrWhiteSpace($PSBoundParameters['keyVaultName'])) -{ - Write-Output "KeyVault Name: $keyVaultName" - $kVSecretParameters = @{ } - - #region - Analysis Services Parameters - if (-not [string]::IsNullOrWhiteSpace($PSBoundParameters['analysisServicesName'])) - { - Write-Output "Analysis Services Name : $analysisServicesName" - $kVSecretParameters.Add("AnalysisServices--Name", $($analysisServicesName)) - } - else - { - Write-Output "Analysis Services Name: []" - } - - if (-not [string]::IsNullOrWhiteSpace($PSBoundParameters['analysisServicesResourceId'])) - { - Write-Output "AnalysisServices ResourceId : $analysisServicesResourceId" - $kVSecretParameters.Add("AnalysisServices--ResourceId", $($analysisServicesResourceId)) - } - else - { - Write-Output "Analysis Services ResourceId: []" - } - - if (-not [string]::IsNullOrWhiteSpace($PSBoundParameters['analysisServicesResourceGroup'])) - { - Write-Output "Analysis Services ResourceGroup : $analysisServicesResourceGroup" - $kVSecretParameters.Add("AnalysisServices--ResourceGroup", $($analysisServicesResourceGroup)) - } - else - { - Write-Output "Analysis Services ResourceGroup: []" - } - #endregion - - #region - Set Azure KeyVault Secret - $kVSecretParameters.Keys | ForEach-Object { - $key = $psitem - $value = $kVSecretParameters.Item($psitem) - - if (-not [string]::IsNullOrWhiteSpace($value)) - { - Write-Output "KeyVault Secret: $key : $value" - - $value = $kVSecretParameters.Item($psitem) - - Write-Output "Setting Secret for $key" - $paramSetAzKeyVaultSecret = @{ - VaultName = $keyVaultName - Name = $key - SecretValue = (ConvertTo-SecureString $value -AsPlainText -Force) - Verbose = $true - ErrorAction = 'SilentlyContinue' - } - Set-AzKeyVaultSecret @paramSetAzKeyVaultSecret - } - else - { - Write-Output "KeyVault Secret: []" - } - } - #endregion -} -else -{ - Write-Output "KeyVault Name: []" -} -#endregion \ No newline at end of file diff --git a/Modules/AnalysisServices/2.0/Scripts/git_placeholder.md b/Modules/AnalysisServices/2.0/Scripts/git_placeholder.md new file mode 100644 index 0000000..e69de29 diff --git a/Modules/AnalysisServices/2.0/deploy.json b/Modules/AnalysisServices/2.0/deploy.json index 8dc6f65..f5a5d1a 100644 --- a/Modules/AnalysisServices/2.0/deploy.json +++ b/Modules/AnalysisServices/2.0/deploy.json @@ -73,39 +73,11 @@ "description": "Optional. Customer Usage Attribution id (GUID). This GUID must be previously registered" } }, - "tagEnvironment": { - "type": "string", + "tagValues": { + "type": "object", "defaultValue": "", "metadata": { - "description": "Optional. The name of the Environment" - } - }, - "tagProject": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional. The name of the project" - } - }, - "tagApplication": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional. The name of the application" - } - }, - "tagOwner": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional. The business owner for the application" - } - }, - "tagOwnerEmail": { - "type": "string", - "defaultValue": "", - "metadata": { - "description": "Optional. The Email address of the business owner for the application" + "description": "Optional. Azure Resource Tags object" } } }, @@ -133,16 +105,10 @@ }, { "type": "Microsoft.AnalysisServices/servers", - "apiVersion": "[providers('Microsoft.AnalysisServices','servers').apiVersions[0]]", - "name": "[parameters('serverName')]", + "apiVersion": "2017-08-01,", + "name": "[variables('analysisServicesName')]", "location": "[parameters('location')]", - "tags": { - "Environment": "[parameters('tagEnvironment')]", - "Application": "[parameters('tagApplication')]", - "Project": "[parameters('tagProject')]", - "Owner": "[parameters('tagOwner')]", - "OwnerEmail": "[parameters('tagOwnerEmail')]" - }, + "tags": "[if(empty(parameters('tagValues')), json('null'), parameters('tagValues'))]", "sku": { "name": "[parameters('skuName')]", "capacity": "[parameters('skuCapacity')]" @@ -153,11 +119,11 @@ "resources": [ { "type": "Microsoft.AnalysisServices/servers/providers/diagnosticsettings", - "name": "[concat(parameters('serverName'), '/Microsoft.Insights/service')]", "apiVersion": "2017-05-01-preview", - "location": "[parameters('location')]", + "name": "[concat(variables('analysisServicesName'), '/', 'Microsoft.Insights/service')]", + "location": "[parameters('location')]", "dependsOn": [ - "[concat('Microsoft.AnalysisServices/servers/', parameters('serverName'))]" + "[variables('analysisServicesResourceId')]" ], "properties": { "storageAccountId": "[variables('diagnosticStorageAccountId')]", diff --git a/Modules/AnalysisServices/2.0/readme.md b/Modules/AnalysisServices/2.0/readme.md index 5627bf4..3061d74 100644 --- a/Modules/AnalysisServices/2.0/readme.md +++ b/Modules/AnalysisServices/2.0/readme.md @@ -1,6 +1,6 @@ - # Analysis Services +# Analysis Services -This module deploys Analysis Services. +This module deploys Analysis Services. ## Resources @@ -14,7 +14,7 @@ The following Resources are deployed. | Parameter Name | Default Value | Required | Description | | :- | :- | :- |:- | | `serverName` || **Required** | The name of the Azure Analysis Services server to create -| `location` | resourceGroup().location | **Optional** | Location for all Resources +| `location` || **Optional** | Location for all Resources | `skuName` | S0 | **Optional** | The sku name of the Azure Analysis Services server to create | `skuCapacity` | 1 | **Optional** | The total number of query replica scale-out instances | `firewallSettings` | AllowFromAll | **Optional** | The inbound firewall rules to define on the server. If not specified, firewall is disabled @@ -22,11 +22,8 @@ The following Resources are deployed. | `logAnalyticsWorkspaceId` || **Required** | Resource identifier of Log Analytics Workspace | `logsRetentionInDays` | 30 |**Optional** | Specifies the number of days that logs will be kept for, a value of 0 will retain data indefinitely | `cuaId` || **Optional** | Customer Usage Attribution Id (GUID). This GUID must be previously registered -| `tagEnvironment` || **Optional** | The name of the Environment -| `tagProject` || **Optional** | The name of the project -| `tagApplication` || **Optional** | The name of the application -| `tagOwner` || **Optional** | The business owner for the application -| `tagOwnerEmail` || **Optional** | The Email address of the business owner for the application +| `tagValues` || **Optional** | Optional. Azure Resource Tags object + ## Outputs | Output Name | Description | @@ -37,9 +34,7 @@ The following Resources are deployed. ## Scripts -| Script Name | Description | -| :- | :- | -| `analysis.services.akv.secrects.ps1` | Set Analysis Services KeyVault Secrets Automation Script ++ There is no deployment considerations for this Module. ## Considerations @@ -47,4 +42,6 @@ The following Resources are deployed. ## Additional resources -[Microsoft Analysis Services template reference](https://docs.microsoft.com/en-us/azure/templates/microsoft.analysisservices/allversions) \ No newline at end of file ++ [Microsoft Analysis Services template reference](https://docs.microsoft.com/en-us/azure/templates/microsoft.analysisservices/allversions) ++ [Microsoft Analysis Services diagnostic settings reference](https://azure.microsoft.com/en-us/blog/azure-analysis-services-integration-with-azure-diagnostic-logs/) +