我正在创建一个ARM模板来部署Azure搜索实例和依赖于Azure搜索实例的功能应用程序。作为其中一部分,我尝试使用搜索服务的API密钥预先填充功能应用程序应用程序设置。
我通过将以下内容添加到FunctionAppSite
的其中一个应用设置的值中来实现此目的:
[listKeys(variables('searchServiceId'), '2015-08-19').key1]
我在变量部分
中获得了searchServiceId[resourceId('Microsoft.Search/searchServices', parameters('SearchServiceName'))]
FunctionAppSite
组件列出了对AppServicePlan
,StorageAccount
和SearchService
的依赖关系。
当我部署模板时,会创建搜索服务,然后发生错误,因为listkeys
无法找到搜索服务。这在服务创建后约。25秒发生。
我很确定我的listkeys周围的语法是正确的,问题只是时间问题,不知道如何减慢它的速度。我尝试强制StorageAccount
依赖于我的模板中的SearchService
,希望依赖链会减慢速度,但listkeys
错误发生在创建搜索服务之后,但之前StorageAccount
已创建。
可以找到完整的模板here,并且有一个'部署到Azure'如果你想在行动中看到它,那就是那个回购的readme.md上的按钮。
答案 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