2017-05-17 56 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