ARM模板listkeys()无法找到Azure搜索

时间:2017-05-17 16:44:05

标签: azure azure-functions azure-search arm-template

我正在创建一个ARM模板来部署Azure搜索实例和依赖于Azure搜索实例的功能应用程序。作为其中一部分,我尝试使用搜索服务的API密钥预先填充功能应用程序应用程序设置。

我通过将以下内容添加到FunctionAppSite的其中一个应用设置的值中来实现此目的:

[listKeys(variables('searchServiceId'), '2015-08-19').key1]

我在变量部分

中获得了searchServiceId
[resourceId('Microsoft.Search/searchServices', parameters('SearchServiceName'))]

FunctionAppSite组件列出了对AppServicePlanStorageAccountSearchService的依赖关系。

当我部署模板时,会创建搜索服务,然后发生错误,因为listkeys无法找到搜索服务。这在服务创建后约。25秒发生。

我很确定我的listkeys周围的语法是正确的,问题只是时间问题,不知道如何减慢它的速度。我尝试强制StorageAccount依赖于我的模板中的SearchService,希望依赖链会减慢速度,但listkeys错误发生在创建搜索服务之后,但之前StorageAccount已创建。

可以找到完整的模板here,并且有一个'部署到Azure'如果你想在行动中看到它,那就是那个回购的readme.md上的按钮。

1 个答案:

答案 0 :(得分:7)

好吧,查看Microsoft.Search的提供商操作:

Microsoft.Search/register/action
Microsoft.Search/checkNameAvailability/action
Microsoft.Search/searchServices/write
Microsoft.Search/searchServices/read
Microsoft.Search/searchServices/delete
Microsoft.Search/searchServices/start/action
Microsoft.Search/searchServices/stop/action
Microsoft.Search/searchServices/listAdminKeys/action
Microsoft.Search/searchServices/regenerateAdminKey/action
Microsoft.Search/searchServices/createQueryKey/action
Microsoft.Search/searchServices/queryKey/read
Microsoft.Search/searchServices/queryKey/delete

这是你如何做到的:

 "[listAdminKeys(variables('searchServiceId'), '2015-08-19').PrimaryKey]"

列出提供商操作:

$ops = (Get-AzureRmProviderOperation -OperationSearchString */*).Operation