2017-05-17 24 views
2

我正在创建ARM模板以部署Azure搜索实例和依赖于Azure搜索实例的函数应用程序。作为其中的一部分,我试图用搜索服务的API密钥预先填充功能应用程序设置。ARM模板列表键()未能找到Azure搜索

我加入以下到的FunctionAppSite的应用程序设置一个值这样做:

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

我得到searchServiceId的变量部分

[resourceId('Microsoft.Search/searchServices', parameters('SearchServiceName'))] 

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

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

我很确定我有关于listkeys正确的语法,问题只是时机,不知道如何我可以减慢它的速度。我试图强制StorageAccount依赖于我的模板中的SearchService,希望依赖链可以将事情放慢,但listkeys错误发生在搜索服务创建后,但在创建StorageAccount之前。

完整的模板可以找到here,如果您想要看到它的实际操作,那么该回购的readme.md上有一个'Deploy to Azure'按钮。

回答

5

好,看着提供商业务为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 
+1

你能就如何评论你看过提供商的操作? – bearrito

+1

不是一个大秘密,更新了@bearrito的答案 – 4c74356b41