Ich versuche, eine Azure-Funktion zu erstellen, die PowerShell mit einem Speicherwarteschlangen-Trigger ausführt. Zu Testzwecken möchte ich, dass diese Funktion eine Datei in meinem OneDrive for Business-Konto bearbeitet. Um die Datei unter aapdftoimage/ThreePages.pdf
zu aapdftoimage/output_ThreePages.pdf
zu kopieren.Azure-Funktion mit PowerShell, Speicherwarteschlangen-Trigger und OneDrive for Business
Wenn OneDrive for Business als Eingabe integriert ist, erhalte ich Fehler, wenn die Funktion durch eine neue Nachricht in der Warteschlange ausgelöst wird. Wenn ich OneDrive als Eingabe abbringe, erhalte ich keine Fehler und $triggerInput
enthält die Nachricht.
Die Fehler sind:
2017-05-25T22:24:38.484 Function started (Id=a0c37fdf-ed3c-473c-9c79-236d63531e7e)
2017-05-25T22:24:38.499 Function completed (Failure, Id=a0c37fdf-ed3c-473c-9c79-236d63531e7e, Duration=1ms)
2017-05-25T22:24:38.562 Exception while executing function: Functions.QueueTriggerPowerShell1. Microsoft.Azure.WebJobs.Host: No value for named parameter 'file'.
Hier ist meine Powershell:
$inData = Get-Content $triggerInput
$inFile = Get-Content $inputFile
Write-Output "PowerShell script processed queue message '$inData'"
Write-Output "inFile: $inFile"
hier function.json:
{
"bindings": [
{
"name": "triggerInput",
"type": "queueTrigger",
"direction": "in",
"queueName": "samples-powershell-pdftoimage",
"connection": "<storageaccount>_STORAGE"
},
{
"type": "apiHubFile",
"name": "inputFile",
"path": "aapdftoimage/{file}",
"connection": "onedriveforbusiness1_ONEDRIVEFORBUSINESS",
"direction": "in"
}
],
"disabled": false
}
Als ich dies schreibe, denke ich, ein Teil meiner Verwirrung ist über die Integration von OneDrive for Business für die Eingabe und Ausgabe (nicht in meinem Test verbunden).
Ich weiß was $triggerInput
ist. Es ist der Inhalt der Nachricht. Aber was ist $inputFile
? Und woher kommt {file}
?
Ich dachte, vielleicht würde ich folgendes tun, aber es funktioniert auch nicht (gleiche Fehler):
$file = Get-Content $triggerInput
Ich dachte, das $inputFile
als „aapdftoimage/$ file“ definieren könnte, aber es tut nichts von der Sortieren.
Unnötig zu sagen, ich bin im Stillstand. Kann mir jemand eine Anleitung geben und mich aufrichten?
Vielen Dank! Es funktioniert! Ich denke, das ist eine Menge Magie. Viele Dinge passieren automatisch. Ich würde lieber den Inhalt explizit abrufen, von JSON konvertieren, zu {file} zuweisen und dann wissen, was inputFile und outputFile sind. – Chris76786777
Ja, Ihre Beobachtung ist richtig. Es ist in diesem Stadium eine bekannte Einschränkung, dass Sie {Datei} nicht innerhalb Ihres Codes zuweisen können. Dies gilt für alle Sprachen, die in Azure-Funktionen unterstützt werden, die sich im experimentellen Stadium befinden. Wir planen, dies in zukünftigen Releases anzugehen, aber es gibt derzeit keine ETA. –
Das ist großartig. Froh das zu hören. – Chris76786777