C# 通过在Azure函数上使用输出blob绑定来简化
我正在使用C# 通过在Azure函数上使用输出blob绑定来简化,c#,azure,azure-functions,azure-blob-storage,C#,Azure,Azure Functions,Azure Blob Storage,我正在使用httppost触发一个Azure函数,并希望将请求正文保存到Blob。根据文档,使用输出Blob存储绑定,这应该是相对直接的。然而,我无法让它工作。当我检查自动生成的function.json时,我注意到没有为输出创建绑定 下面的函数正在工作,但是我想知道关于Blob输出绑定我缺少什么。如何将其更改为使用Blob输出绑定 公共静态类saveSubcent { [FunctionName(“SaveSubcent”)] 公共静态结果运行( [HttpTrigger(Authorizat
httppost
触发一个Azure函数
,并希望将请求正文保存到Blob
。根据文档,使用输出Blob
存储绑定,这应该是相对直接的。然而,我无法让它工作。当我检查自动生成的function.json
时,我注意到没有为输出创建绑定
下面的函数正在工作,但是我想知道关于Blob
输出绑定我缺少什么。如何将其更改为使用Blob输出绑定
公共静态类saveSubcent
{
[FunctionName(“SaveSubcent”)]
公共静态结果运行(
[HttpTrigger(AuthorizationLevel.Anonymous,“post”,Route=null)]HttpRequest请求,
ILogger日志,ExecutionContext上下文
)
{
var config=new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile(“local.settings.json”,可选:true,重载更改:true)
.AddenEnvironmentVariables()
.Build();
var connectionString=config[“AzureWebJobsStorage”];
字符串containerName=“法国msgs”;
字符串blobName=Guid.NewGuid().ToString()+“.json”;
BlobContainerClient容器=新的BlobContainerClient(connectionString,containerName);
container.CreateIfNotExists();
BlobClient blob=container.GetBlobClient(blobName);
blob.Upload(请求主体);
登录信息(“已完成上传:+blobName”);
返回新的OkObjectResult(“”);
}
}
您可以将输出绑定与{rand guid}特殊绑定表达式结合使用,大大简化这一过程。{rand guid}将为您生成一个guid作为绑定的一部分,因此您不必在代码中这样做
public static class Function1
{
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
[Blob("france-msgs/{rand-guid}.json", FileAccess.ReadWrite, Connection = "AzureWebJobsStorage")] CloudBlockBlob outputBlob,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
await outputBlob.UploadTextAsync(requestBody);
return new OkObjectResult("");
}
}
公共静态类函数1
{
[功能名称(“功能1”)]
公共静态异步任务运行(
[HttpTrigger(AuthorizationLevel.Anonymous,“get”,“post”,Route=null)]HttpRequest请求,
[Blob(“france msgs/{rand guid}.json”,FileAccess.ReadWrite,Connection=“azurewebjobstorage”)]CloudBlockBlob outputBlob,
ILogger日志)
{
string requestBody=等待新的StreamReader(req.Body).ReadToEndAsync();
等待outputBlob.UploadTextAsync(requestBody);
返回新的OkObjectResult(“”);
}
}
非常感谢!我感觉有一部分文档丢失了,{rand guid}部分帮助我做到了这一点:绑定表达式现在变得更有意义了