从Azure函数获取要在Function.json绑定中使用的参数



我是Azure函数的新手,在一些基础知识上遇到了问题,特别是如何将参数数据传递到function.json,以便使用存储连接器将blob写入Azure blob存储。

我的问题是,如何在httpTrigger函数中指定下面的outputBlobContent绑定可以使用的参数?

我的设置非常简单(但还不起作用(:


function.json:

{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "blob",
"direction": "out",
"name": "outputBlobContents",
"path": "uploaded_files/{destinationFilename}",
"connection": "MY_STORAGE"
}
]
}

index.ts:

import { AzureFunction, Context, HttpRequest } from "@azure/functions"
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
context.bindingData.destinationFilename = "testfile.pdf";
context.bindings.outputBlobContents = context.req.body;
const responseMessage = "uploaded file";
context.res = {
status: 201,
body: responseMessage
};
};
export default httpTrigger;

在我的示例代码中,我尝试将destinationFilename分配给context.bindingData对象,但这不起作用。我已经阅读了所有的文档,但对bindingData对象的实际内容或命名参数的一般工作方式还不太清楚。如何告诉blob存储连接器将文件存储在何处?

简单地说,任何形式的json输入都将作为参数获得。函数内部是不可能的。如果您想在功能内部使用它,请选择直接使用Azure Storage的sdk。

由于您使用httptrigger,因此可以以json格式发送请求体,如下所示:

{
"destinationFilename":"something"
}

之后,输出绑定可以获得该值。

最新更新