2017-05-17 3 views
2

Ich erstelle eine ARM-Vorlage, um sowohl eine Azure Search-Instanz als auch eine Funktionsanwendung bereitzustellen, die von der Azure Search-Instanz abhängt. Als Teil davon versuche ich, die Function Apps-App-Einstellungen mit dem API-Schlüssel des Suchdienstes vorzubelegen.ARM-Vorlage listkeys() kann Azure Search nicht finden

ich das tue folgendes in den Wert einer der App-Einstellungen des FunctionAppSite durch Zusatz:

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

Ich erhalte die searchServiceId in den Variablen Abschnitte

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

Die FunctionAppSite Komponente listet Abhängigkeiten von AppServicePlan, StorageAccount und SearchService auf.

Wenn ich die Vorlage bereitstellen, wird der Suchdienst erstellt, dann tritt ein Fehler auf, weil listkeys den Suchdienst nicht finden konnte. Dies geschieht etwa 25 Sekunden nachdem der Service erstellt wurde.

Ich bin ziemlich sicher, dass ich die Syntax um die Listkeys richtig habe und das Problem ist nur das Timing, nicht sicher, wie ich es aber verlangsamen kann. Ich versuchte, die StorageAccount zu zwingen, auf die SearchService in meiner Vorlage abzuhängen, in der Hoffnung, dass die Abhängigkeitskette Dinge verlangsamen würde, aber der listkeys Fehler passiert, nachdem der Suchdienst erstellt wird, aber bevor die StorageAccount erstellt wird.

Die vollständige Vorlage finden Sie here und es gibt eine Schaltfläche "Deploy to Azure" auf der Readme.md dieses Repo, wenn Sie es in Aktion sehen möchten.

Antwort

5

Nun, für Microsoft.Search bei Provider Operationen suchen:

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 

dies ist, wie Sie es tun:

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

Anbieter Operationen aufzulisten:

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

Können Sie sagen, wie Sie haben sich die Provider-Operationen angesehen? – bearrito

+1

kein großes Geheimnis, aktualisierte die Antwort @Bearrito – 4c74356b41

Verwandte Themen