Reference Azure函数复制由上载触发的文件
我试图扩展基础教程,它允许您在文件上载到blob存储后记录信息。教程中的代码有效,并从这里提取: 我现在尝试添加一个输出,将该文件复制到另一个容器中。我正在使用以下输出示例中的代码: 我的代码只是原始示例的一个小插件 run.csx:Reference Azure函数复制由上载触发的文件,reference,azure-functions,azure-blob-storage,Reference,Azure Functions,Azure Blob Storage,我试图扩展基础教程,它允许您在文件上载到blob存储后记录信息。教程中的代码有效,并从这里提取: 我现在尝试添加一个输出,将该文件复制到另一个容器中。我正在使用以下输出示例中的代码: 我的代码只是原始示例的一个小插件 run.csx: using System.IO; using System.Collections.Generic; using Microsoft.Azure.WebJobs; public static void Run([BlobTrigger("sampl
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”(是否缺少using指令或程序集引用?)
2020-11-25T06:29:57.580[错误]run.csx(5,25):错误CS0246:找不到类型或命名空间名称“BlobTrigger”(是否缺少using指令或程序集引用?)
2020-11-25T06:29:57.672[错误]run.csx(5,82):错误CS0246:找不到类型或命名空间名称“BlobatAttribute”(是否缺少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"
}
]
}
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);
}
run.csx
{
"bindings": [
{
"name": "myBlob",
"type": "blobTrigger",
"direction": "in",
"path": "test1/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "myOutputBlob",
"type": "blob",
"path": "test2/{name}",
"connection": "AzureWebJobsStorage",
"direction": "out"
}
]
}
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存储包。您的意思是我需要包含另一个命名空间吗?如果是,哪一个?这些示例没有使用任何其他示例。而且您是基于csx的,对吗?您的格式错误。run.csx的格式错误吗?据我所知,它与我发布的第二个链接的格式相同。你能告诉我它到底出了什么问题吗?你可以检查一下:你可以试试我贴的答案。