У меня установлена лазурная функция, которая запускается из blob, добавляемого в конкретный контейнер. Blob - это .zip-файл, который я намерен использовать adm-zip
, чтобы извлечь blob в каталог, а затем прочитать содержимое. Я смущен о документации здесь: https://github.com/Azure/azure-content/blob/master/articles/azure-functions/functions-bindings-storage.md#blob-trigger-supported-types Что говорит, что входной параметр может быть либо объектом, либо строкой. Я не вижу никакого места в функции.json, чтобы указать, что я хочу, чтобы вход был.Azure Функции: как читать вкладку blob для nodejs?
В моем коде ниже тип кажется строкой, но поскольку он ничего не печатает, я предполагаю, что это фактически буфер байтов, представляющий содержимое файла. Чтобы работать с этим, Я попытался записать буфер в локальный файл, но он не был успешным. Он не выдаст ошибку или распечатать saved blob to...
В моей function.json я это:
{
"bindings": [
{
"name": "xmlZipBlob",
"type": "blobTrigger",
"direction": "in",
"path": "balancedataxml",
"connection": "sc2iq_STORAGE"
}
],
"disabled": false
}
И тогда я xmlZipBlob
в качестве второго аргумента в моей функции:
var fs = require('fs');
module.exports = function (context, xmlZipBlob) {
context.log('Node.js blob trigger function processed blob:', xmlZipBlob);
context.log(`typeof xmlZipBlob:`, typeof xmlZipBlob);
fs.writeFile('xmlZip.zip', xmlZipBlob, (err) => {
if (err) {
throw err;
}
context.log('saved blob to loal file called xmlZip.zip');
context.done();
});
};
1. Каков тип входного параметра для функции для blobs?
2. Как определить, является ли входной параметр объектом или строкой?
3. Возможно ли использовать собственный узел fs
для записи в локальную файловую систему для извлечения .zip-файла?
Обновление: Я считаю, что это не удается из-за попытки использовать файловую систему и открыли отдельный более изолированный вопрос здесь: Azure Functions: Nodejs, What are restrictions/limitations when using file system?
4. Есть ли лучшая альтернатива, чем при использовании .zip файлов?
Пока это не решится, я думаю, что придумаю другое решение для работы с .zip-файлом. Либо делать все в памяти с потоками, либо избегать .zip-файлов, а просто создавать больший xml-файл из меньших xml-файлов. В любом случае, похоже, что должна быть какая-то документация или предупреждение о том, что потребуется для переноса функции узла, которая зависит от файловой системы, к лазурным функциям.