Azure 函数:Blob 标识符的格式必须为 'container/blob'

Azure Function: Blob identifiers must be in the format 'container/blob'

我使用 BlobTriggerCSharp 示例创建了一个 Azure 函数,并配置了存储帐户和路径:

我仔细检查配置的存储帐户中有一个 mbrtest 容器:

我没有更改任何其他内容。这是 run.csx:

public static void Run(Stream myBlob, string name, TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
}

当我按下 运行 按钮时,出现以下错误:

2017-05-12T13:47:35.567 Exception while executing function: Functions.BlobTriggerCSharp1. Microsoft.Azure.WebJobs.Host: One or more errors occurred. Exception binding parameter 'myBlob'. Microsoft.Azure.WebJobs.Host: Blob identifiers must be in the format 'container/blob'.

有什么提示吗?

尝试按以下方式测试您的功能:

  1. 将文件添加到您的 blob 容器。例如。创建一个名为 test.txt 的文件,内容为 TestBody(音符长度 8)。

  2. 现在检查您的函数日志。你应该会看到类似

    的内容
    2017-05-12T14:03:12.147 C# Blob trigger function Processed blob
    Name:test.txt
    Size: 8 Bytes
    
  3. 现在,要使用门户中的 Run 按钮,请转到“测试”选项卡并在那里输入 mbrtest/test.txt。您应该再次在日志中看到相同的消息(重新处理了相同的文件)。

据我所知,Run 按钮不会为您创建新的 blob。

我遵循了 Mikhail 的解决方案,三步加上 Function App 的配置。

您必须转到左侧网格中的“设置”面板,然后单击“配置”。 然后我有一个名为 AzureWebJobsStorage 的变量是不正确的,所以编辑它并用存储帐户的参数填充它。您可以在“访问密钥”选项的存储帐户中找到它们。

您需要添加的值是这样的:(请注意,这是一个示例,不是有效的密钥) DefaultEndpointsProtocol=https;AccountName=YourAccountNameHere;AccountKey=RandomVerylong......stringVwithuninteligiblevalues)!%;EndpointSuffix=core.windows.net

这个值应该放在这个设置变量的值中