Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绑定到C#预编译Azure函数中的自定义输入属性_C#_Azure_Azure Functions_Precompiled - Fatal编程技术网

绑定到C#预编译Azure函数中的自定义输入属性

绑定到C#预编译Azure函数中的自定义输入属性,c#,azure,azure-functions,precompiled,C#,Azure,Azure Functions,Precompiled,我正在尝试使用自定义绑定和模式创建一个HTTP触发的Azure函数,该函数从Blob存储中获取文件。在我的例子中,POST HTTP请求将知道附件名称。 在讨论使用csx脚本的模式的文档中,我在VisualStudio中使用了预编译的C#Azure函数。我试图将其转换为以下内容,但它引发运行时异常: 以下1个功能出错: 运行:Microsoft.Azure.WebJobs.Host:索引方法“HttpTriggerGetAttachmentBlob.Run”时出错。Microsoft.Azure

我正在尝试使用自定义绑定和模式创建一个HTTP触发的Azure函数,该函数从Blob存储中获取文件。在我的例子中,POST HTTP请求将知道附件名称。 在讨论使用csx脚本的模式的文档中,我在VisualStudio中使用了预编译的C#Azure函数。我试图将其转换为以下内容,但它引发运行时异常:

以下1个功能出错: 运行:Microsoft.Azure.WebJobs.Host:索引方法“HttpTriggerGetAttachmentBlob.Run”时出错。Microsoft.Azure.WebJobs.Host:不存在“附件”的绑定参数

代码如下:

    public class BlobInfo
    {
        public string Attachment { get; set; }
    }
    public static class HttpTriggerGetAttachmentBlob
    {
        [FunctionName("HttpTriggerGetAttachmentBlob")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function,
            "post")]
            HttpRequestMessage req, 
            TraceWriter log,
            [Blob("strings/{Attachment}")] string blobContents,
            BlobInfo blobInfo)
        {
            if(blobContents == null) {
                return req.CreateResponse(HttpStatusCode.NotFound);
            }

            return req.CreateResponse(HttpStatusCode.OK, new
            {
                data = $"{blobContents}"
            });
        }
    }
公共类BlobInfo
{
公共字符串附件{get;set;}
}
公共静态类HttpTriggerGetAttachmentBlob
{
[函数名(“HttpTriggerGetAttachmentBlob”)]
公共静态异步任务运行([HttpTrigger(AuthorizationLevel.Function,
“职务”)]
HttpRequestMessage请求,
TraceWriter日志,
[Blob(“strings/{Attachment}”)]字符串BlobContent,
BlobInfo BlobInfo)
{
if(blobContents==null){
返回请求CreateResponse(HttpStatusCode.NotFound);
}
返回请求CreateResponse(HttpStatusCode.OK,新
{
数据=$“{blobContents}”
});
}
}

如果知道文件名来自触发事件,如何检索Blob存储文件?

技巧实际上是将
HttpTrigger
属性置于
blobInfo
参数上,而不是
req

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req,
  TraceWriter log,
  [Blob("strings/{Attachment}")] string blobContents,
  [HttpTrigger(AuthorizationLevel.Function, "post")] BlobInfo blobInfo)
公共静态异步任务运行(HttpRequestMessage req,
TraceWriter日志,
[Blob(“strings/{Attachment}”)]字符串BlobContent,
[HttpTrigger(AuthorizationLevel.Function,“post”)]BlobInfo BlobInfo
这将告诉运行时您正在绑定到
BlobInfo
类,并且它将能够派生
{Attachment}
模板绑定


注意:在重新编译之前,请确保删除
bin
文件夹,工具并不总是正确更新现有的
function.json
文件。

是否可以让
BlobTrigger
请求另一个
Blob
?我的理解是这两个选项是
String
Stream
。基于,您不能