C# 隔离 AzureFunction - BlobOutput 参数
C# Isolated AzureFunction - BlobOutput parameter
如何将参数传递给 BlobOutput?
我需要在运行时生成 blob 名称。有没有一种声明性的方式来做到这一点?
在这里你可以看到我需要设置参数“name”的值。
[BlobOutput("container/{name}", Connection = "AzureWebJobsStorage")]
public static object Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, out string name,
FunctionContext executionContext)
{...}
我玩过执行上下文,但运气不好。
我认为您无法从 http 触发器中获取这样的 blob 名称。我可以想到以下选项。
使用队列或 blob 触发函数。有了它,您将从触发器数据本身动态获取 blob 名称。例如,
public static void Run(
[BlobTrigger("sample-images/{name}")] Stream image,
[Blob("sample-images-md/{name}", FileAccess.Write)] Stream imageSmall)
{
使用系统绑定表达式形成输出 blob 名称。
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "blobname")] HttpRequest req,
[Blob("sourcefolder/output{DateTime.UtcNow}", FileAccess.Write, Connection = "AzureWebJobsStorage")] Stream blobStream,
ILogger log)
{
完全删除输出绑定并在函数本身中创建一个 blob 客户端。这将使您可以完全控制 blob 名称或您需要的任何其他内容。如果您的应用程序中有多个功能,最好创建一个单例服务并在其中放置此连接对象。
如何将参数传递给 BlobOutput? 我需要在运行时生成 blob 名称。有没有一种声明性的方式来做到这一点? 在这里你可以看到我需要设置参数“name”的值。
[BlobOutput("container/{name}", Connection = "AzureWebJobsStorage")]
public static object Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, out string name,
FunctionContext executionContext)
{...}
我玩过执行上下文,但运气不好。
我认为您无法从 http 触发器中获取这样的 blob 名称。我可以想到以下选项。
使用队列或 blob 触发函数。有了它,您将从触发器数据本身动态获取 blob 名称。例如,
public static void Run( [BlobTrigger("sample-images/{name}")] Stream image, [Blob("sample-images-md/{name}", FileAccess.Write)] Stream imageSmall)
{
使用系统绑定表达式形成输出 blob 名称。
public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "blobname")] HttpRequest req, [Blob("sourcefolder/output{DateTime.UtcNow}", FileAccess.Write, Connection = "AzureWebJobsStorage")] Stream blobStream, ILogger log) {
完全删除输出绑定并在函数本身中创建一个 blob 客户端。这将使您可以完全控制 blob 名称或您需要的任何其他内容。如果您的应用程序中有多个功能,最好创建一个单例服务并在其中放置此连接对象。