2017-09-10 1 views
1

Ich habe eine Azure-Funktion mit einer Azure Cosmos DB-Ausgabe (Dokument) eingerichtet. Die Kosmos-Datenbank ist als MongoDB konfiguriert. Und addierten den folgenden einfachen Code, um zu versuchen und ein neues Dokument hinzuzufügen:Azure-Funktion mit Kosmos MongoDB-Integration wird nicht gespeichert

module.exports = function (context, eventHubMessages) { 
    context.bindings.document = { 
    text : "Test data" 
} 
context.done(); 
}; 

Wenn ich bekomme ich Erfolg führen testen, aber wenn ich versuche, die die Sammlung mit Studio 3T i erhalten zu öffnen:

Query failed with error code 1 and error message 'Unknown server error occurred when processing this request.' 

Wenn ich den gleichen Code verwenden, um in eine DocumentDB zu schreiben, bekomme ich Erfolg und kann Daten in Azure anzeigen. Müssen Sie eine andere API verwenden, um Daten in mongoDB zu speichern?

Antwort

1

Die DocumentDB-Ausgabebindung verwendet die DocumentDB API, um Informationen in der Datenbank zu verbinden und zu speichern. Aber Ihre Datenbank (von dem, was Sie sagen) verwendet die MongoDB API, sie sind verschiedene APIs (Links zeigen auf die Dokumente).

Wie Sie sicherlich wissen, hat MongoDB einige Anforderungen (wie das Vorhandensein eines "_id" -Attributs), die abgedeckt werden, wenn Sie von einem MongoDB-Client (entweder einem SDK oder einem Drittanbieter-Client) eine Verbindung zur Datenbank herstellen Da Sie über die DocumentDB-API kommunizieren, werden diese Anforderungen wahrscheinlich nicht erfüllt.

Sie könnten versuchen, die Mongo driver in der Funktion zu verwenden, um eine Verbindung zu Ihrer Cosmos DB-Datenbank über die MongoDB-API herzustellen.

+0

Ja, dies ist ein ziemlich undokumentiertes Problem für azure Funktionen im Moment. Ich habe eine neue Datenbank erstellt, diesmal mit dem SQL-Treiber, und es hat funktioniert. Dies passt jedoch nicht zu meinem Anwendungsfall, da wir die mongodb API wirklich brauchten. –

Verwandte Themen