我有一个简单的blob监听器,它连接到一个blob容器。侦听器(在Azure上)显示它正在运行,但函数没有被调用。
这是来自控制台的日志。
Azure Functions Core Tools (3.0.2630 Commit hash: ......)
Function Runtime Version: 3.0.13901.0
[7/6/2020 5:24:04 PM] Building host: startup suppressed: 'False', configuration suppressed:
'False', startup operation id: '.........'
[7/6/2020 5:24:04 PM] Reading host configuration file '.....\host.json'
[7/6/2020 5:24:04 PM] Host configuration file read:
[7/6/2020 5:24:04 PM] {
[7/6/2020 5:24:04 PM] "version": "2.0",
[7/6/2020 5:24:04 PM] "logging": {
[7/6/2020 5:24:04 PM] "applicationInsights": {
[7/6/2020 5:24:04 PM] "samplingExcludedTypes": "Request",
[7/6/2020 5:24:04 PM] "samplingSettings": {
[7/6/2020 5:24:04 PM] "isEnabled": true
[7/6/2020 5:24:04 PM] }
[7/6/2020 5:24:04 PM] }
[7/6/2020 5:24:04 PM] }
[7/6/2020 5:24:04 PM] }
[7/6/2020 5:24:04 PM] Loading functions metadata
[7/6/2020 5:24:04 PM] Reading functions metadata
[7/6/2020 5:24:04 PM] 1 functions found
[7/6/2020 5:24:04 PM] 1 functions loaded
[7/6/2020 5:24:04 PM] Loading extensions from .....\netcoreapp3.1\bin. BundleConfigured: False,
PrecompiledFunctionApp: False, LegacyBundle: False
[7/6/2020 5:24:04 PM] Loading startup extension 'AzureStorage'
[7/6/2020 5:24:04 PM] Loaded extension 'AzureStorage' (3.0.10.0)
[7/6/2020 5:24:05 PM] Initializing Warmup Extension.
[7/6/2020 5:24:05 PM] Initializing Host. OperationId: '......'.
[7/6/2020 5:24:05 PM] Host initialization: ConsecutiveErrors=0, StartupCount=1,
OperationId=..........
[7/6/2020 5:24:05 PM] LoggerFilterOptions
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "MinLevel": "None",
[7/6/2020 5:24:05 PM] "Rules": [
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "ProviderName": null,
[7/6/2020 5:24:05 PM] "CategoryName": null,
[7/6/2020 5:24:05 PM] "LogLevel": null,
[7/6/2020 5:24:05 PM] "Filter": "<AddFilter>b__0"
[7/6/2020 5:24:05 PM] },
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "ProviderName":
"Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.SystemLoggerProvider",
[7/6/2020 5:24:05 PM] "CategoryName": null,
[7/6/2020 5:24:05 PM] "LogLevel": "None",
[7/6/2020 5:24:05 PM] "Filter": null
[7/6/2020 5:24:05 PM] },
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "ProviderName":
"Microsoft.Azure.WebJobs.Script.WebHost.Diagnostics.SystemLoggerProvider",
[7/6/2020 5:24:05 PM] "CategoryName": null,
[7/6/2020 5:24:05 PM] "LogLevel": null,
[7/6/2020 5:24:05 PM] "Filter": "<AddFilter>b__0"
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] ]
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] FunctionResultAggregatorOptions
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "BatchSize": 1000,
[7/6/2020 5:24:05 PM] "FlushTimeout": "00:00:30",
[7/6/2020 5:24:05 PM] "IsEnabled": true
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] SingletonOptions
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "LockPeriod": "00:00:15",
[7/6/2020 5:24:05 PM] "ListenerLockPeriod": "00:00:15",
[7/6/2020 5:24:05 PM] "LockAcquisitionTimeout": "10675199.02:48:05.4775807",
[7/6/2020 5:24:05 PM] "LockAcquisitionPollingInterval": "00:00:05",
[7/6/2020 5:24:05 PM] "ListenerLockRecoveryPollingInterval": "00:01:00"
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] QueuesOptions
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "BatchSize": 16,
[7/6/2020 5:24:05 PM] "NewBatchThreshold": 8,
[7/6/2020 5:24:05 PM] "MaxPollingInterval": "00:00:02",
[7/6/2020 5:24:05 PM] "MaxDequeueCount": 5,
[7/6/2020 5:24:05 PM] "VisibilityTimeout": "00:00:00"
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] BlobsOptions
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "CentralizedPoisonQueue": false
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] HttpOptions
[7/6/2020 5:24:05 PM] {
[7/6/2020 5:24:05 PM] "DynamicThrottlesEnabled": false,
[7/6/2020 5:24:05 PM] "MaxConcurrentRequests": -1,
[7/6/2020 5:24:05 PM] "MaxOutstandingRequests": -1,
[7/6/2020 5:24:05 PM] "RoutePrefix": "api"
[7/6/2020 5:24:05 PM] }
[7/6/2020 5:24:05 PM] Starting JobHost
[7/6/2020 5:24:05 PM] Starting Host (HostId=........., InstanceId=........., Version=3.0.13901.0,
ProcessId=14720, AppDomainId=1, InDebugMode=False, InDiagnosticMode=False,
FunctionsExtensionVersion=(null))
[7/6/2020 5:24:05 PM] Loading functions metadata
[7/6/2020 5:24:05 PM] 1 functions loaded
[7/6/2020 5:24:06 PM] Generating 1 job function(s)
[7/6/2020 5:24:06 PM] Found the following functions:
[7/6/2020 5:24:06 PM] BlobStorageListener.BlobListener.Run
[7/6/2020 5:24:06 PM]
[7/6/2020 5:24:06 PM] Initializing function HTTP routes
[7/6/2020 5:24:06 PM] No HTTP routes mapped
[7/6/2020 5:24:06 PM]
[7/6/2020 5:24:06 PM] Host initialized (602ms)
[7/6/2020 5:24:06 PM] Host started (890ms)
[7/6/2020 5:24:06 PM] Job host started
Hosting environment: Production
Content root path: ........\bin\Debug\netcoreapp3.1
Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.
[7/6/2020 5:24:11 PM] Host lock lease acquired by instance ID '..........'.
即使当我登录azure查看已发布的应用程序并重新执行网格时,它也会告诉我它正在运行,但函数app仍然没有被调用。
有没有人能告诉我哪里出了问题?
发布于 2020-07-07 05:55:59
首先,你最好给我们提供一个示例代码。
假设您使用的是blob trigger azure function,请检查以下可能的原因:
对于host.json中的
如果您在尝试上述步骤后仍有问题,请让我知道。
发布于 2020-07-17 20:04:38
如果通过这种方式它确实会调用,但Blob Trigger不会调用,那么您的问题可能与冷启动有关。
Blob触发器的调用速度往往较慢,如果您使用的是消费计划,则速度会更慢。他们从文档中删除了这一点,但据说可能会出现长达10-15分钟的延迟。我再也没有找到其他的解释。无论如何,请read this。
处理blobs的另一种方法是写入与正在创建或修改的blobs相对应的队列消息,然后使用队列存储触发器开始处理。
还有一个更大的解决办法仍然有效,那就是只要您上传一个文件,就向队列发送一条消息,其中包含到达存储器的blob的名称,然后使用时间触发器函数定期从队列中检查这些blob名称,从存储器中下载它们并对其进行处理。
不是最好的方法,而是一种方法。
https://stackoverflow.com/questions/62761748
复制相似问题