由 BLOB 触发的 Azure Function 中的可选变量
Optional variables in Azure Function triggered by BLOB
为 Azure 函数配置 blob 触发器时,可以在 blob 名称上使用模式匹配将名称的一部分映射到函数中的变量。例如:
[FunctionName("BlobTriggered")]
public static void BlobTriggered(
[BlobTrigger("myContainer/{name}.{extension}")] Stream myBlob,
string name,
string extension,
TraceWriter log)
{
...
}
但是如果我希望其中一个变量是可选的呢?对于给定的示例,如果我希望扩展名是可选的怎么办?因此,我需要使 .
和扩展本身成为可选的。有可能实现吗?
您可以像这样删除模式并自己处理文件名和扩展名。
public static void Run([BlobTrigger("test/{name}", Connection = "teststorage_STORAGE")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"Name: {Path.GetFileName(name)}");
log.LogInformation($"Extension: {Path.GetExtension(name)}");
}
下面的日志条目中,第一个上传带有扩展名而最后一个没有。
为 Azure 函数配置 blob 触发器时,可以在 blob 名称上使用模式匹配将名称的一部分映射到函数中的变量。例如:
[FunctionName("BlobTriggered")]
public static void BlobTriggered(
[BlobTrigger("myContainer/{name}.{extension}")] Stream myBlob,
string name,
string extension,
TraceWriter log)
{
...
}
但是如果我希望其中一个变量是可选的呢?对于给定的示例,如果我希望扩展名是可选的怎么办?因此,我需要使 .
和扩展本身成为可选的。有可能实现吗?
您可以像这样删除模式并自己处理文件名和扩展名。
public static void Run([BlobTrigger("test/{name}", Connection = "teststorage_STORAGE")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"Name: {Path.GetFileName(name)}");
log.LogInformation($"Extension: {Path.GetExtension(name)}");
}
下面的日志条目中,第一个上传带有扩展名而最后一个没有。