Ich habe ungefähr 800k Blobs in meinem azurblauen Speicher. Wenn ich eine azure-Funktion mit einem BlobTrigger erstelle, fängt es an, alle Blobs zu verarbeiten, die ich im Speicher habe. Wie kann ich meine Funktion so konfigurieren, dass sie nur für neue und aktualisierte Blobs ausgelöst wird?
Es gibt derzeit keine Möglichkeit, dies zu tun. Intern verfolgen wir, welche Blobs wir verarbeitet haben, indem wir Belege in unserem Kontrollcontainer azure-webjobs-hosts
speichern. Jeder Blob, der keine Quittung oder einen alten Quitt (basierend auf Blob ETag) hat, wird verarbeitet (oder erneut verarbeitet). Aus diesem Grund werden Ihre bestehenden Blobs verarbeitet - sie haben keine Quittungen. BlobTrigger
ist derzeit darauf ausgelegt sicherzustellen, dass ALLE Blobs in einem Container, die mit dem Pfadmuster übereinstimmen, letztendlich verarbeitet und bei jeder Aktualisierung erneut verarbeitet werden.
Wenn Sie sich leidenschaftlich dafür interessieren, können Sie eine Feature-Anfrage in unserem Repo hier mit Details protokollieren zu deinem Szenario.
Hat jemand eine Art Workaround dafür gefunden? Ich versuche derzeit, einen BlobTrigger in Azure-Funktionen zu verwenden, um SQL-Überwachungsprotokolle zu verarbeiten.
Ich brauche nur die neueren Logs, die weiter laufen, aber wir haben eine ziemlich hohe Aufbewahrungsdauer, also ist es ein sehr langsamer / schlechter Weg, all diese Blobs mit einem NOOP (in verschiedenen Umgebungen und die Quittungen sind pro laufendem Host) durchzugehen darüber zu gehen.
Tags und Links azure c# azure-storage-blobs azure-functions