Azure 函数复制上传触发的文件
Azure Function to duplicate file triggered by upload
我正在尝试扩展允许您在文件上传到 blob 存储后记录信息的基本教程。教程中的代码有效,并从此处提取:
我现在正在尝试添加一个输出,将该文件复制到另一个容器。我正在使用在此处找到的输出示例中找到的代码:
我的代码只是对原始示例的一个小补充。
run.csx:
using System.IO;
using System.Collections.Generic;
using Microsoft.Azure.WebJobs;
public static void Run([BlobTrigger("samples-workitems/{name}")] Stream myBlob, [Blob("copytwotkelly/{name}", FileAccess.Write)] Stream duplicateUpload, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
myBlob.CopyTo(duplicateUpload);
}
function.json:
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "samples-workitems/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "duplicateUpload",
"path": "copytwotkelly/{name}",
"connection": "AzureWebJobsStorage",
"direction": "out",
"type": "blob"
}
]
}
当函数触发时,我收到错误消息:
2020-11-25T06:29:57.518 [错误] run.csx(5,25):错误 CS0246:找不到类型或命名空间名称 'BlobTriggerAttribute'(您是否缺少使用指令或程序集引用?)
2020-11-25T06:29:57.580 [错误] run.csx(5,25): 错误 CS0246: 找不到类型或命名空间名称 'BlobTrigger'(是否缺少 using 指令或程序集参考?)
2020-11-25T06:29:57.672 [错误] run.csx(5,82):错误 CS0246:找不到类型或命名空间名称 'BlobAttribute'(您是否缺少 using 指令或程序集参考?)
2020-11-25T06:29:57.729 [错误] run.csx(5,82):错误 CS0246:找不到类型或命名空间名称 'Blob'(您是否缺少 using 指令或程序集参考资料?)
但据我所知,我已正确遵循教程中的配置说明。它实际上并没有在示例中显示 .json 文件,所以我不确定我做错了什么。我错过了什么?这些 类 不是它在使用 Microsoft.Azure.WebJobs 时要求的吗?我提到的?在此先感谢您的帮助。
下面的代码在我这边工作正常:
function.json
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "test1/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "myOutputBlob",
"type": "blob",
"path": "test2/{name}",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
run.csx
public static void Run(Stream myBlob,Stream myOutputBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
myBlob.CopyTo(myOutputBlob);
}
这是官方文档:
我正在尝试扩展允许您在文件上传到 blob 存储后记录信息的基本教程。教程中的代码有效,并从此处提取:
我现在正在尝试添加一个输出,将该文件复制到另一个容器。我正在使用在此处找到的输出示例中找到的代码:
我的代码只是对原始示例的一个小补充。
run.csx:
using System.IO;
using System.Collections.Generic;
using Microsoft.Azure.WebJobs;
public static void Run([BlobTrigger("samples-workitems/{name}")] Stream myBlob, [Blob("copytwotkelly/{name}", FileAccess.Write)] Stream duplicateUpload, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
myBlob.CopyTo(duplicateUpload);
}
function.json:
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "samples-workitems/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "duplicateUpload",
"path": "copytwotkelly/{name}",
"connection": "AzureWebJobsStorage",
"direction": "out",
"type": "blob"
}
]
}
当函数触发时,我收到错误消息:
2020-11-25T06:29:57.518 [错误] run.csx(5,25):错误 CS0246:找不到类型或命名空间名称 'BlobTriggerAttribute'(您是否缺少使用指令或程序集引用?) 2020-11-25T06:29:57.580 [错误] run.csx(5,25): 错误 CS0246: 找不到类型或命名空间名称 'BlobTrigger'(是否缺少 using 指令或程序集参考?) 2020-11-25T06:29:57.672 [错误] run.csx(5,82):错误 CS0246:找不到类型或命名空间名称 'BlobAttribute'(您是否缺少 using 指令或程序集参考?) 2020-11-25T06:29:57.729 [错误] run.csx(5,82):错误 CS0246:找不到类型或命名空间名称 'Blob'(您是否缺少 using 指令或程序集参考资料?)
但据我所知,我已正确遵循教程中的配置说明。它实际上并没有在示例中显示 .json 文件,所以我不确定我做错了什么。我错过了什么?这些 类 不是它在使用 Microsoft.Azure.WebJobs 时要求的吗?我提到的?在此先感谢您的帮助。
下面的代码在我这边工作正常:
function.json
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "test1/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "myOutputBlob",
"type": "blob",
"path": "test2/{name}",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
run.csx
public static void Run(Stream myBlob,Stream myOutputBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
myBlob.CopyTo(myOutputBlob);
}
这是官方文档: