JavaScript:Azure函数blob绑定处理异常
您好,我已经创建了一个azure函数httptrigger,用于从具有blob输入绑定的blob存储中读取blob 下面是function.json:JavaScript:Azure函数blob绑定处理异常,javascript,azure,azure-functions,azure-blob-storage,Javascript,Azure,Azure Functions,Azure Blob Storage,您好,我已经创建了一个azure函数httptrigger,用于从具有blob输入绑定的blob存储中读取blob 下面是function.json: { "disabled": false, "bindings": [ { "authLevel": "anonymous", "type": "httpTrigger", "direction": "in", "name": "req" }, { "nam
{
"disabled": false,
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req"
},
{
"name" : "blobContent",
"type": "blob",
"direction": "in",
"path": "containerName/{id}.{extn}",
"connection": "AzureWebJobsStorage"
},
{
"name": "$return",
"type": "http",
"direction": "out"
}
]
}
index.js文件是:
我使用get和post方法调用httptrigger。因为我使用的是blob输入绑定,所以在处理index.js之前检索内容。这样,我无法验证API是否使用id和extn调用。是否有方法处理异常并将消息返回给API调用方以传递必要的参数。提前谢谢 所以函数确实有这样做的方法,称为。此功能允许您编写在运行作业函数之前或之后调用的方法(调用筛选器),或在函数运行时代码遇到异常时调用的方法(异常筛选器)。您可以编写一个异常过滤器,在输入绑定失败时捕获异常,这将实现您想要的功能
不幸的是,在编写此答案时,函数过滤器仅与预编译的C#函数兼容。当前有此跟踪功能添加到其他场景中。如果您在HTTP有效负载中传递blob名称(读取请求正文-->您的自定义逻辑-->blob客户端-->获取blob并返回),则始终可以使用Azure Storage SDK中的blob客户端。谢谢您提供的信息。使用Azure SDK与绑定之间是否存在性能差异?否。在幕后使用相同的SDK。这是为了方便,而不是为了表演。主机和语言工作人员之间涉及到一些gRPC,但在大多数情况下,这几乎没有开销。因此,如果说有什么区别的话,直接使用存储SDK应该会快一点,但只会稍微快一点。感谢您提供宝贵的信息。谢谢你,康纳。感谢您的回复。这是否意味着如果我们想使用Javascript,现在就必须坚持使用SDK。使用绑定和Azure SDK有什么性能差异吗?不应该有。我相信我们的绑定只是在幕后使用C#Azure存储SDK。再次感谢Connor。感谢您的回复。
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
if (req.query.id || (req.body && req.body.id)) {
context.res = {
body : {'data' : context.bindings.blobContent},
headers : {'Content-type': 'application/xml"'}
}
}
else {
context.res = {
status: 400,
body: "Please pass a object/chuck id on the query string or in the request body"
};
}
context.done(null,context.res);
};