aum*_*joa 6 c# azure-storage-blobs azure-functions azure-functions-core-tools
有人可以描述我如何配置使用 HTTP 输入触发器和 blob 存储输出触发器的 C# azure 函数吗?
也许还有一个示例代码片段和一个示例 function.json。我没有让它在本地使用 azure 函数核心工具工作。
chr*_*ris 17
这是一个带有输出 blob 绑定的组合 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);
}
Run Code Online (Sandbox Code Playgroud)
它使用CloudBlobContainer
输出类型来获取对 blob 容器的引用,然后您可以使用诸如.GetBlockBlobReference("blobPath")
获取对 blob 的引用之类的方法。
获得对 blob 的引用后,您可以使用不同的方法上传:
cloudBlockBlob.UploadFromByteArrayAsync()
cloudBlockBlob.UploadFromFileAsync()
cloudBlockBlob.UploadTextAsync()
cloudBlockBlob.UploadFromStreamAsync()
为了让它在本地运行,你需要设置一些东西。请注意我的示例中的属性[Blob("blobcontainer", Connection = "StorageConnectionString")]
outputContainer.CreateIfNotExistsAsync();
(如果它还不存在)。local.settings.json
您的存储帐户连接字符串的设置。在本地开发时,我建议将其设置为,"UseDevelopmentStorage=true"
以便您可以利用存储模拟器。然后,当您准备好部署到 Azure 上时,您将在包含实际连接字符串的函数应用中创建一个设置。本地设置.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"StorageConnectionString": "UseDevelopmentStorage=true"
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6461 次 |
最近记录: |