Azure Functions: Nodejs, Was sind Einschränkungen bei der Verwendung des Dateisystems?

Ich konnte keine Azure-Funktion ausführen, die das Modul "Node File System" verwendet.

Ich habe eine brandneue Funktions-App mit den meisten grundlegenden HTTP-Triggerfunktionen erstellt und das 'fs'-Modul eingefügt:

var fs = require('fs');

module.exports = function (context, req, res) {
    context.log('function triggered');
    context.log(req);

    context.done();
}

Dies funktioniert gut. Die vollständige Anforderung wird in Live-Streaming-Protokollen und in der Funktionsaufrufliste angezeigt.

Sobald ich jedoch den Code hinzufüge, der das Dateisystem tatsächlich verwendet, scheintAbstur die azurblaue Funktion. Es vervollständigt oder löst den Fehler nicht aus. Es scheint auch nicht in der Liste der Azure-Funktionsaufrufe zu erscheinen, was beängstigend ist, da es sich um einen Verlust von Fehlerinformationen handelt und ich denke, mein Dienst lief einwandfrei, als es tatsächlich zu Abstürzen kam.

var fs = require('fs');

module.exports = function (context, req, res) {
    context.log('function triggered');
    context.log(req);

    fs.writeFile('message.txt', 'Hello Node.js', (err) => {
        if (err) throw err;
        console.log('It\'s saved!');
        context.done();
    });
}

Dasfs.writeFile code direkt von der node.js-Website:https: //nodejs.org/dist/latest-v4.x/docs/api/fs.html#fs_fs_writefile_file_data_options_callbac

Ich habe das @ hinzugefücontext.done() im Rückruf, aber dieses Snippet sollte in einer normalen Entwicklungsumgebung ohne Probleme funktionieren.

Dies wirft die Fragen auf:

Ist es möglich, das Dateisystem bei Verwendung von Azure-Funktionen zu verwenden?Wenn ja, welche Einschränkungen gibt es?Wenn keine Einschränkungen bestehen, müssen Entwickler den Überblick behalten und die Bereinigung durchführen, oder wird dies durch Sandboxing behoben?

bwohl dies als serverloses Computing angesehen wird, gibt es meines Wissens nach immer noch einen VM / Azure-Website-App-Dienst, unter dem sich ein Dateisystem befindet. Ich kann die Kudu-Konsole verwenden und mich in den Dateien / wwwroot und / home / functions / secrets umsehen.

Stellen Sie sich ein Szenario vor, in dem eine Azure-Funktion geschrieben wird, um eine Datei mit einem eindeutigen Namen zu schreiben und keine Bereinigung durchzuführen. Dies würde schließlich den gesamten Speicherplatz auf der Host-VM in Anspruch nehmen und die Leistung beeinträchtigen. Dies kann durch einen Entwickler versehentlich geschehen und möglicherweise unbemerkt bleiben, bis es zu spät ist.

Dies lässt mich fragen, ob es beabsichtigt ist, das Dateisystem nicht zu verwenden, oder ob meine Funktion einfach falsch geschrieben ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage