5

テンプレートの一部として、パラメーターとして渡すのではなく、OMS/Operational Insights ワークスペースの SharedKeys を取得したいと考えています。

これは可能ですか?ここのドキュメントに従っています

Microsoft.OperationalInsights/workspaces/リソース プロバイダーにプロバイダー オペレーションがあるようには見えlist*ず、その他のリファレンスが見つかりません。

Get-AzureRmProviderOperation -OperationSearchString *  | where {$_.Operation -like "*operational*sharedkeys*"} | FT Operation

Microsoft.OperationalInsights/workspaces/sharedKeys/action

私の希望の使用法:

"variables": { workspaceKey: "[listKeys(parameters('workspaceResourceId'), '2015-05-01-preview').primarySharedKey]" }

とりあえず、これは実際にはサポートされていないと仮定して、Log Analytics UserVoice サイトにリクエストを追加しました。

4

2 に答える 2

5

Ryan Jonesによる[listKeys()]と、OMS ワークスペースに対しては期待どおりに機能し、primarySharedKey&secondarySharedKeyプロパティを含む JSON オブジェクトを返します。

"outputs": {
    "listKeys": {
        "value": "[listKeys(parameters('workspaceResourceId'), '2015-11-01-preview')]",
        "type": "object"
    }
}

収量:

{
    "primarySharedKey":"",
    "secondarySharedKey":""
}

重要な警告:

variableslistKeys() は、ランタイム状態から値を導出するため、ARM テンプレートのセクションでは指定できません。

出力値を取得して別のリソースのプロパティに割り当てるために、リソースとして指定されたリンクされたテンプレートを使用する方法については、このブログ投稿を参照してください。

または、直接使用することもできます。これが私の最終的なテンプレートです:
(実際には出力にキーを保持しないでください!)

{
  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspaceResourceId": { "type": "string" },
    "virtualMachines": { "type": "array" }
  },
  "variables": {
    "extensionType": {
      "Windows": "MicrosoftMonitoringAgent",
      "Linux": "OmsAgentForLinux"
    }
  },
  "resources": [
    {
      "copy": {
        "name": "VMMonitoringExtensionsCopy",
        "count": "[length(parameters('virtualMachines'))]"
      },
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "apiVersion": "2015-05-01-preview",
      "location": "[parameters('virtualMachines')[copyIndex()].location]",
      "name": "[concat(parameters('virtualMachines')[copyIndex()].name, '/Microsoft.EnterpriseCloud.Monitoring')]",
      "properties": {
        "publisher": "Microsoft.EnterpriseCloud.Monitoring",
        "type": "[variables('extensionType')[parameters('virtualMachines')[copyIndex()].osType]]",
        "typeHandlerVersion": "1.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "workspaceId": "[reference(parameters('workspaceResourceId'), '2015-11-01-preview').customerId]"
        },
        "protectedSettings": {
          "workspaceKey": "[listKeys(parameters('workspaceResourceId'), '2015-11-01-preview').primarySharedKey]"
        }
      }
    }
  ],
  "outputs": {
    "workspaceCustomerId": {
      "value": "[reference(parameters('workspaceResourceId'), '2015-11-01-preview').customerId]",
      "type": "string"
    },
    "workspacePrimarySharedKey": {
      "value": "[listKeys(parameters('workspaceResourceId'), '2015-11-01-preview').primarySharedKey]",
      "type": "securestring"
    },
    "workspaceSecondarySharedKey": {
      "value": "[listKeys(parameters('workspaceResourceId'), '2015-11-01-preview').secondarySharedKey]",
      "type": "securestring"
    }
  }
}

配列パラメーターは次のvirtualMachinesスキーマに従います。

[
    { "name": "", "location": "", "osType": "" }
]
于 2016-05-25T16:48:36.400 に答える
-1

listKeys では、リソースの種類を入力する必要があります。これを試しましたか?

"variables": { workspaceKey: "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceResourceId'), '2015-05-01-preview').primarySharedKey]" }

残念ながら、そのリソースに関するAzure クイックスタート リポジトリにはまったく何もないので、100% 確実ではありません...

ただし、パラメーターとして渡すことは問題ありません。これを行うことができます...デプロイ スクリプトで、New-AzureRmResourceGroupDeployment を実行する前に、既存のワークスペースを作成/使用し、キーを取得し、パラメーターとして渡し、テンプレートでパラメーターとして primarySharedKey を作成します。

$workSpace = Get-AzureRmOperationalInsightsWorkspace -ResourceGroupName $RGName -Name $workSpaceName -ErrorAction SilentlyContinue
if($workSpace -eq $null){
New-AzureRmOperationalInsightsWorkspace -ResourceGroupName $RGName -Name $workSpaceName -Location $Location
}

$keys = Get-AzureRmOperationalInsightsWorkspaceSharedKeys -ResourceGroupName $RGName -Name $workSpaceName

New-AzureRmResourceGroupDeployment <other stuff here> -primarySharedKey $keys.PrimarySharedKey
于 2016-05-20T10:59:57.457 に答える