输出Blob路径“ $ web / index.html”被视为对Function App无效

时间:2019-04-12 07:20:52

标签: azure azure-functions azure-storage-blobs

Azure Blob存储通过强制容器名称“ $ web”支持“静态Web”功能。

在构建函数应用程序时,如果要保存函数在blob文档中生成的内容,则需要指定路径,但是容器名称为“ $ web”的路径被认为是无效的。

我正在使用Azure函数运行库〜2,并且使用Javascript作为语言。

var reject = [ 'something', 'somethingElse', 'a third thing' ] var accept= [ 'something', 'somethingElse', 'a third thing' ] // reject if in array myArray.filter(item => reject.indexOf(item) === -1) // just accept if in array myArray.filter(item => accept.indexOf(item) >= 0) 文件如下所示。

function.json

我希望输出会生成并将文件保存到Blob路径{ "bindings": [ { "name": "myTimer", "type": "timerTrigger", "direction": "in", "schedule": "0 0 5 * * *" }, { "type": "blob", "name": "$return", "path": "$web/index.html", "connection": "AzureWebJobsStorage", "direction": "out" } ] } ,但会出现以下错误。

$web/index.html

1 个答案:

答案 0 :(得分:1)

我使用了Azure node SDK,而不是使用标准的Azure函数输出管道。

我承诺了上载方法(在V2 SDK中使用回调)。

function upload(svc, container, blob, content) {
    return new Promise((res, rej) => svc.createBlockBlobFromText(container, blob, content, (err, resp, _) => {
        if (err) {
            rej(err);
        }

        res(resp);
    }));
}

然后我用它来上传生成的文件。

const blobSvc = createBlobService();
await upload(blobSvc, process.env.OUTPUT_CONTAINER, process.env.OUTPUT_BLOB, render(readFileSync('D:/home/site/wwwroot/TimerTrigger1/template.html', 'utf-8'), { user, photos }));