gpt4 book ai didi

Azure存储Blob触发器没有唤醒休眠功能

转载 作者:行者123 更新时间:2023-12-02 23:40:53 25 4
gpt4 key购买 nike

这个问题类似于Azure Blob Storage trigger Function not firing

但是,他们的问题是他们的 Azure Function 没有立即唤醒,给人的印象是它没有处理来自 Azure Blob 存储的触发器,而实际上是在 10 分钟后,这与 MS 文档所声称的完全一样。

https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=csharp

我的问题有所不同。我的 blob 已经在容器中放置了 9 个小时,但仍未得到处理。

它所做的只是将消息发布到 ServiceBus 上。

[FunctionName("IncomingFileDetected")]
[return: ServiceBus("incoming-file-received", EntityType = Microsoft.Azure.WebJobs.ServiceBus.EntityType.Topic)]
public static IncomingFile Run(
[BlobTrigger("incoming-files/{filename}", Connection = "ConnectionStrings:MutableStorage")]
Stream contents,
string filename,
ILogger log)
{
log.LogInformation($"Detected new blob file: {filename}");
return new IncomingFile(filename);
}

服务总线中没有出现任何消​​息。

现在,9 小时后,我重新启动了函数应用,并且 Blob 在大约 10 分钟内得到了处理。

最佳答案

更新:

感谢Peter Morris的分享,问题来自于服务计划是d1。因此,首先确保您基于三种计划:消费计划、高级计划和应用服务计划。当我们使用azure功能时,即使只是测试,我们也应该使用消费计划。生产中最小的是 S1,通常用于测试。

原始答案:

下面的代码在我这边工作得很好。连消费计划都没问题。

using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace FunctionApp35
{
public static class Function1
{
[FunctionName("Function1")]
[return: ServiceBus("test", Connection = "ServiceBusConnection")]
public static string Run([BlobTrigger("samples-workitems/{name}", Connection = "str")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
string a = "111111111111111";
return a;
}
}
}

这是我的本地设置:

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=0730bowmanwindow;AccountKey=lti/ThmF+mw9BebOacp9gVazIh76Q39ecikHSCkaTcGK5hmInspX+EkjzpNmvCPWsnvapWziHQHL+kKt2V+lZw==;EndpointSuffix=core.windows.net",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"str": "DefaultEndpointsProtocol=xxxxxx",
"ServiceBusConnection": "Endpoint=sb://bowmantestxxxxxx"
}
}

str 来自这个地方:

enter image description here

ServiceBusConnection 来自这个地方:

enter image description here

enter image description here

请注意,触发 azure 函数后,blob 不会从容器中删除。另外,不要忘记在您的服务总线主题中至少创建一个订阅。

enter image description here

将功能部署到azure后,上述所有功能都可以正常工作。(与本地不同的是,您需要在配置设置中添加设置,而不是local.settings.json)

enter image description here

enter image description here

关于Azure存储Blob触发器没有唤醒休眠功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61565169/

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