- Added the
MaxMessageBatchSize
property to theServiceBusTrigger
attribute to allow configuring the maximum number of messages to process in a batch at the function level.
- Updated the
Azure.Messaging.ServiceBus
, which includes a new build of the AMQP transport library. One notable but fix addresses an obscure race condition when a cancellation token is signaled while service operations are being invoked concurrently which caused those operations to hang. Another notable fix is for an obscure race condition that occurred when attempting to complete a message which caused the operation to hang.
- Fixed cleanup behavior when targeting .NET Framework so that Service Bus clients are properly disposed.
- Updated the
Azure.Messaging.ServiceBus
dependency, which includes optimized defaults of the host platform to be used for AMQP buffers. This offers non-trivial performance increase on Linux-based platforms and a minor improvement on macOS. This update also enables support for TLS 1.3. Additionally, this update contains a fix for session messages to ensure FIFO ordering.
- Bump dependency on
Microsoft.Extensions.Azure
to prevent transitive dependency on deprecated version ofAzure. Identity
.
- Fixed issue where deadlettering a message without specifying properties to modify could throw an exception from out of proc extension.
- Include underlying exception details in RpcException when a failure occurs.
- Updated proto service definition to use StringValue rather than string for deadletter error reason and description.
- Fixed the disposal pattern for cached Service Bus clients so that they are disposed only on host shutdown.
- Updated the proto service definition to use bytes for application properties.
- Added
MaxConcurrentCallsPerSession
toServiceBusOptions
to allow configuring the maximum number of concurrent calls per session.
- Added dependency on Grpc libraries in order to support message settlement from isolated worker.
- When binding to a
CancellationToken
, the token will no longer be signaled when in Drain Mode. To detect if the function app is in Drain Mode, use dependency injection to inject theIDrainModeManager
, and check theIsDrainModeEnabled
property.
- Fixed issue where the main entity was not queried by the scale monitor when listening to the deadletter queue.
- Updated dependency on
Azure.Messaging.ServiceBus
to 7.15.0.
- Added
MinMessageBatchSize
andMaxBatchWaitTime
toServiceBusOptions
to allow configuring the minimum number of messages to process in a batch and the maximum time to wait for a batch to be filled before processing.
- Target-based scaling support has been added, allowing instances for Service Bus-triggered Functions to more accurately calculate their scale needs and adjust more quickly as the number of messages waiting to be processed changes.
- Fixed issue where custom
MessagingProvider
could be replaced by the libraryMessagingProvider
.
- Support binding to
PartitionKey
andTransactionPartitionKey
. - Add
PeekMessagesAsync
method toServiceBusReceiveActions
. - Add
DeadletterMessageAsync
overload toServiceBusMessageActions
that allows passing the properties dictionary in addition to the deadletter error reason and description.
- Fixed resource string usage to prevent
MissingManifestResourceException
when throwing exceptions from the extension.
- Update exception messages to link to the troubleshooting guide.
- Added distributed tracing span when for functions that process a batch of messages.
- Fixed issue related to function apps that are bound to multiple namespaces using the same entity names, which caused messages to not be processed from the second namespace.
- Added ability to register a callback for
SessionInitializingAsync
andSessionClosingAsync
to theServiceBusOptions
. (A community contribution, courtesy of danielmarbach)
SessionIdleTimeout
now will be applied for batch functions in addition to single-message functions.
- Fixed race condition when starting up function app.
- Updated dependency on
Azure.Messaging.ServiceBus
to benefit from bug fix. - Messages will now be abandoned if the function invocation throws for multiple dispatch functions. This was already the behavior for single dispatch functions.
- Added the
ServiceBusReceiveActions
type to support receiving additional messages from a function invocation. - Added the ability to bind to the
SessionId
property.
Thank you to our developer community members who helped to make the Service Bus client library better with their contributions to this release:
- Daniel Marbach (GitHub)
- Added the ability to renew message and session locks using the
ServiceBusMessageActions
andServiceBusSessionActions
.
- Ignore scheduled/deferred messages when computing scale monitor metrics. (A community contribution, courtesy of danielmarbach)
- Add listener details.
- Add protected constructors to
ServiceBusMessageActions
andServiceBusSessionMessageActions
for mocking.
- Make
ServiceBusMessageActions
thread-safe.
- Added
EnableCrossEntityTransactions
option - Added ability to bind to
ServiceBusClient
- Added DynamicConcurrency support.
- General availability of Microsoft.Azure.WebJobs.Extensions.ServiceBus 5.0.0.
- Support binding to
BinaryData
instances.
- Renamed
ServiceBusEntityType
property toEntityType
. - Renamed
messageActions
andsessionActions
parameters toactions
inMessageProcessor
andSessionMessageProcessor
. - Renamed
MaxBatchSize
toMaxMessageBatchSize
inServiceBusOptions
.
- Added
AutoCompleteMessages
property toServiceBusTriggerAttribute
which allows configuring autocompletion at the function level.
- Fix binding for DateTime parameters
- Avoid exception that occurred when a function settles messages and
AutoCompleteMessages
is true for multiple dispatch functions. - Avoid null reference exception that could occur when no messages are available for a multiple dispatch function.
- Added
JsonSerializerSettings
property toServiceBusOptions
.
- Made
Constants
class internal. - Made
ServiceBusWebJobsStartup
class internal. - Renamed
EntityType
toServiceBusEntityType
. - Removed
receiver
parameter fromMessageProcessor
constructor. - Removed
client
parameter fromSessionMessageProcessor
constructor.
- The web proxy specified in configuration is now respected.
- Binding to JObject is now supported.
- Add AAD support
- Changed the API signatures for the methods in
MessagingProvider
. - Added
receiver
parameter toMessageProcessor
constructor. - Added
client
parameter toSessionMessageProcessor
constructor.
- The initial release of Microsoft.Azure.WebJobs.Extensions.ServiceBus 5.0.0