gpt4 book ai didi

azure - Azure WebJobs 中的 BlobTrigger 不会在 WebJob 启动后添加的文件上触发

转载 作者:行者123 更新时间:2023-12-02 08:08:43 26 4
gpt4 key购买 nike

从 azure-webjobs-sdk-samples (1.0.0-rc1) 运行 BlobOperations 示例时 (https://github.com/Azure/azure-webjobs-sdk-samples/tree/master/BasicSamples/BlobOperations)我有以下问题。

当 WebJob 启动时,BlobTriggers 运行良好:

Job host started
Executing: 'Functions.BlobNameFromQueueMessage' because New queue message
detected on 'persons'.
Executing: 'Functions.BlobToBlob' because New blob detected:
input/BlobOperations.txt
Executing: 'Functions.BlobTrigger' because New blob detected:
output/BlobOperations.txt

但是当我将新文件添加到“输入”(或“输出”)容器时,即使等待超过 10 分钟,也没有任何反应

当我重新启动 WebJob 时,我上传的文件确实会被 BlobTrigger 拾取!

这是示例中的(未更改的)BlobTrigger:

public static void BlobToBlob([BlobTrigger("input/{name}")] TextReader input, 
[Blob("output/{name}")] out string output)
{
output = input.ReadToEnd();
}

示例使用最新版本的 Azure Webjobs SDK:

<packages>
<package id="Microsoft.Azure.WebJobs" version="1.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.Azure.WebJobs.Core" version="1.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.Data.Services.Client" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.8.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
<package id="System.Spatial" version="5.6.0" targetFramework="net45" />
<package id="WindowsAzure.Storage" version="4.0.1" targetFramework="net45" />
</packages>

除了包的位置(我的包位于共享位置 - D:\Development\Nuget.Packages)以及 AzureWebJobsDashboard 和 AzureWebJobsStorage 连接字符串之外,我没有更改示例的代码。

我在即将投入生产的“真实”项目中遇到了同样的问题。

这是一个错误,还是我做错了什么?

最佳答案

BlobTrigger 不像队列那样是即时的。 SDK 扫描 Blob 容器以检测新的 Blob 或现有的 Blob 是否已更新,然后触发监听这些 Blob 的函数。扫描可能需要几秒钟到几分钟的时间,具体取决于容器的大小。如果您的应用程序需要即时处理,那么您应该使用队列,然后绑定(bind)到 blob。您可以将容器名称、Blob 名称等 Blob 信息作为队列消息,然后使用 SDK 模型绑定(bind)功能绑定(bind)到 Blob 属性。

关于azure - Azure WebJobs 中的 BlobTrigger 不会在 WebJob 启动后添加的文件上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com