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
答案 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 }));