gpt4 book ai didi

c# - azure function c# http trigger blob output

转载 作者:行者123 更新时间:2023-12-03 13:44:32 26 4
gpt4 key购买 nike

有人可以描述我如何配置使用 HTTP 输入触发器和 blob 存储输出触发器的 C# azure 函数吗?

也许还有一个示例代码片段和一个示例 function.json。我无法使用 azure functions 核心工具在本地工作。

最佳答案

这是一个带有输出 blob 绑定(bind)的组合 HTTP 触发函数:

[FunctionName("HttpTriggeredFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest httpRequest,
[Blob("blobcontainer", Connection = "StorageConnectionString")] CloudBlobContainer outputContainer,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");

await outputContainer.CreateIfNotExistsAsync();

var requestBody = await new StreamReader(httpRequest.Body).ReadToEndAsync();
var blobName = Guid.NewGuid().ToString();

var cloudBlockBlob = outputContainer.GetBlockBlobReference(blobName);
await cloudBlockBlob.UploadTextAsync(requestBody);

return new OkObjectResult(blobName);
}

它使用 CloudBlobContainer输出类型以获取对 blob 容器的引用,然后您可以使用 .GetBlockBlobReference("blobPath") 等方法获取对 blob 的引用。

获得对 blob 的引用后,您可以使用不同的方法进行上传:
  • cloudBlockBlob.UploadFromByteArrayAsync()
  • cloudBlockBlob.UploadFromFileAsync()
  • cloudBlockBlob.UploadTextAsync()
  • cloudBlockBlob.UploadFromStreamAsync()

  • 要让它在本地运行,您需要进行一些设置。请注意我的示例中的属性 [Blob("blobcontainer", Connection = "StorageConnectionString")]
  • "blobcontainer"这可以是任何你想要的,并且将是通过这行 outputContainer.CreateIfNotExistsAsync(); 在你的存储帐户中创建的容器的名称(如果它不存在)。
  • Connection = "StorageConnectionString"这可以是您的 local.settings.json 中的设置用于存储帐户的连接字符串。在本地开发时,我建议将其设置为 "UseDevelopmentStorage=true"这样您就可以利用存储模拟器。然后,当您准备好部署到 Azure 上时,您将在函数应用中创建一个包含实际连接字符串的设置。

  • local.settings.json
    {
    "IsEncrypted": false,
    "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",

    "StorageConnectionString": "UseDevelopmentStorage=true"
    }
    }

    关于c# - azure function c# http trigger blob output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743568/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com