2017-10-15 13 views
1

Ich kann eine Dokumentantwort unter Verwendung von HTTP trigger in FunctionsApp auf Azure wie eine Rest-API erhalten. Allerdings kann ich das Dokument nicht löschen.Azure Cosmos DB-Funktionen - Löschen eines Dokuments

Ich wähle die DELETE als Selected 'HTTP methods', aber ich bin nicht klar, was ich für den nächsten Schritt tun soll. In Eingangsparameter, wenn ich 'Delete from mydocument' in SQL Query (optional) textbox schreibe, funktioniert es nicht. Wahrscheinlich muss ich den 'run.csx' Code ändern, aber wie?

irgendein Hinweis?

enter image description hereenter image description hereenter image description here

+0

Duplizieren von https://stackoverflow.com/questions/46505301/delete-document-in-cosmosdb-through-azure-function – Mikhail

Antwort

1

Ich glaube, den Abschnitt ‚SQL-Abfrage‘ für die Eingabe für ‚Erkenntnis‘ das Dokument verbindlich, die Sie wollen, mit zu arbeiten. Dies kann immer noch nützlich sein, je nachdem, wie Sie vorgehen möchten. Sie können immer noch einen HTTP-Delete-Trigger verwenden, wenn Sie wollen, aber nur "sagen", dass ein DELETE-Verb nicht automatisch löscht. Stattdessen können Sie die Funktion nur aufrufen, wenn Sie sie als DELETE-Aktion angeben.

Ich habe zuvor gelöschte Dokumente durch direkte Bindung an die DocumentClient selbst, und lösche das Dokument programmatisch.

[FunctionName("DeleteDocument")] 
    public static async Task Run(
     [TimerTrigger("00:01", RunOnStartup = true)] TimerInfo timer, 
     [DocumentDB] DocumentClient client, 
     TraceWriter log) 
    { 
     var collectionUri = UriFactory.CreateDocumentCollectionUri("ItemDb", "ItemCollection"); 
     var documents = client.CreateDocumentQuery(collectionUri); 

     foreach (Document d in documents) 
     { 
      await client.DeleteDocumentAsync(d.SelfLink); 
     } 
    } 

Siehe DocumentDBSamples

+0

Dank für Ihre Antwort danken. Ich werde heute Ihren Ansatz betrachten. – MareCieco

+0

Dies funktioniert nicht für partitionierte Sammlungen. –

Verwandte Themen