I am working with Azure function fetch data using service bus input binding and store data into cosmos db using cosmos db output binding.
Following the source code from [Azure]https://github.com/Azure/azure-functions-dotnet-worker/blob/9f9826f70d4bc94133876838e0eafd0de52a9fb4/samples/Extensions/CosmosDB/CosmosDBFunction.cs#L23
The input binding works correctly and the data is returned from service bus. But at the end of the execution the function will throw the error as shown in stack trace.
Here is my code:
public class OrderDispatcherFunction
{
private readonly IConfiguration _configuration;
private readonly ILogger<OrderDispatcherFunction> _logger;
public OrderDispatcherFunction(ILogger<OrderDispatcherFunction> logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}
[Function(nameof(OrderDispatcherFunction))]
[CosmosDBOutput(
databaseName: "itemsDB",
containerName: "items",
Connection = "cosmosDbConnectionString",
CreateIfNotExists = true)]
public object Run(
[ServiceBusTrigger("%queueName%", Connection = "connection")] ServiceBusReceivedMessage message)
{
var data = JsonConvert.DeserializeObject<OrderRequestDto>(message.Body.ToString());
data.Id = System.Guid.NewGuid();
return data;
}
}
public class OrderRequestDto
{
public Guid Id { get; set; }
public Guid CustomerId { get; set; }
}
The stack trace isn’t helpful to help me pinpoint the errors
Executed 'Functions.OrderDispatcherFunction' (Failed, Id=d68fa2f0-605a-4795-ae75-cf96bd9caa60, Duration=4460ms)
[2024-07-07T22:12:58.648Z] System.Private.CoreLib: Exception while executing function: Functions.OrderDispatcherFunction. Microsoft.Azure.Cosmos.Client: Response status code does not indicate success: BadRequest (400); Substatus: 0; ActivityId: 9e37fb45-5d36-4374-9dc8-9ed5f384723d; Reason: ({"code":"BadRequest","message":"Message: {"Errors":["One of the specified inputs is invalid"]}rnActivityId: 9e37fb45-5d36-4374-9dc8-9ed5f384723d, Request URI: /apps/DocDbApp/services/DocDbServer3/partitions/a4cb494f-38c8-11e6-8106-8cdcd42c33be/replicas/1p/, RequestStats: rnRequestStartTime: 2024-07-07T22:12:58.5581217Z, RequestEndTime: 2024-07-07T22:12:58.5591407Z, Number of regions attempted:1rn{"systemHistory":[{"dateUtc":"2024-07-07T22:12:07.5091102Z","cpu":2.305,"memory":1291760.000,"threadInfo":{"isThreadStarving":"False","threadWaitIntervalInMs":0.0619,"availableThreads":32766,"minThreads":12,"maxThreads":32767},"numberOfOpenTcpConnection":2},{"dateUtc":"2024-07-07T22:12:17.5211351Z","cpu":1.872,"memory":1303784.000,"threadInfo":{"isThreadStarving":"False","threadWaitIntervalInMs":0.0243,"availableThreads":32766,"minThreads":12,"maxThreads":32767},"numberOfOpenTcpConnection":2},{"dateUtc":"2024-07-07T22:12:27.5324153Z","cpu":2.873,"memory":1291520.000,"threadInfo":{"isThreadStarving":"False","threadWaitIntervalInMs":0.0289,"availableThreads":32766,"minThreads":12,"maxThreads":32767},"numberOfOpenTcpConnection":2},{"dateUtc":"2024-07-07T22:12:37.5382375Z","cpu":4.296,"memory":1301836.000,"threadInfo":{"isThreadStarving":"False","threadWaitIntervalInMs":0.0329,"availableThreads":32766,"minThreads":12,"maxThreads":32767},"numberOfOpenTcpConnection":2},{"dateUtc":"2024-07-07T22:12:47.5426885Z","cpu":5.261,"memory":1118520.000,"threadInfo":{"isThreadStarving":"False","threadWaitIntervalInMs":0.0358,"availableThreads":32766,"minThreads":12,"maxThreads":32767},"numberOfOpenTcpConnection":2},{"dateUtc":"2024-07-07T22:12:57.5540946Z","cpu":5.888,"memory":706520.000,"threadInfo":{"isThreadStarving":"False","threadWaitIntervalInMs":0.0323,"availableThreads":32766,"minThreads":12,"maxThreads":32767},"numberOfOpenTcpConnection":2}]}rnRequestStart: 2024-07-07T22:12:58.5582669Z; ResponseTime: 2024-07-07T22:12:58.5591407Z; StoreResult: StorePhysicalAddress: rntbd://127.0.0.1:10253/apps/DocDbApp/services/DocDbServer3/partitions/a4cb494f-38c8-11e6-8106-8cdcd42c33be/replicas/1p/, LSN: 13, GlobalCommittedLsn: -1, PartitionKeyRangeId: 0, IsValid: True, StatusCode: 400, SubStatusCode: 0, RequestCharge: 0, ItemLSN: -1, SessionToken: -1#13, UsingLocalLSN: False, TransportException: null, BELatencyMs: 0.327, ActivityId: 9e37fb45-5d36-4374-9dc8-9ed5f384723d, RetryAfterInMs: , ReplicaHealthStatuses: [(port: 10253 | status: Connected | lkt: 07/07/2024 20:12:11)], TransportRequestTimeline: {"requestTimeline":[{"event": "Created", "startTimeUtc": "2024-07-07T22:12:58.5582678Z", "durationInMs": 0.0063},{"event": "ChannelAcquisitionStarted", "startTimeUtc": "2024-07-07T22:12:58.5582741Z", "durationInMs": 0.0016},{"event": "Pipelined", "startTimeUtc": "2024-07-07T22:12:58.5582757Z", "durationInMs": 0.107},{"event": "Transit Time", "startTimeUtc": "2024-07-07T22:12:58.5583827Z", "durationInMs": 0.5696},{"event": "Received", "startTimeUtc": "2024-07-07T22:12:58.5589523Z", "durationInMs": 0.0455},{"event": "Completed", "startTimeUtc": "2024-07-07T22:12:58.5589978Z", "durationInMs": 0}],"serviceEndpointStats":{"inflightRequests":1,"openConnections":1},"connectionStats":{"waitforConnectionInit":"False","callsPendingReceive":0,"lastSendAttempt":"2024-07-07T22:12:58.4983852Z","lastSend":"2024-07-07T22:12:58.4984098Z","lastReceive":"2024-07-07T22:12:58.4994188Z"},"requestSizeInBytes":590,"requestBodySizeInBytes":101,"responseMetadataSizeInBytes":218,"responseBodySizeInBytes":53};rn ResourceType: Document, OperationType: Upsertrn, SDK: Microsoft.Azure.Documents.Common/2.14.0"}
[2024-07-07T22:12:58.649Z] RequestUri: https://127.0.0.1:8081/dbs/CustomerOrderDB/colls/Order/docs;
[2024-07-07T22:12:58.649Z] RequestMethod: POST;
[2024-07-07T22:12:58.650Z] Header: Authorization Length: 88;
[2024-07-07T22:12:58.651Z] Header: x-ms-date Length: 29;
[2024-07-07T22:12:58.652Z] Header: x-ms-documentdb-partitionkey Length: 40;
[2024-07-07T22:12:58.653Z] Header: x-ms-cosmos-sdk-supportedcapabilities Length: 1;
[2024-07-07T22:12:58.654Z] Header: x-ms-documentdb-is-upsert Length: 4;
[2024-07-07T22:12:58.654Z] Header: x-ms-activity-id Length: 36;
[2024-07-07T22:12:58.655Z] Header: Cache-Control Length: 8;
[2024-07-07T22:12:58.655Z] Header: User-Agent Length: 79;
[2024-07-07T22:12:58.656Z] Header: x-ms-version Length: 10;
[2024-07-07T22:12:58.657Z] Header: Accept Length: 16;
[2024-07-07T22:12:58.657Z] , Request URI: /dbs/CustomerOrderDB/colls/Order/docs, RequestStats: Microsoft.Azure.Cosmos.Tracing.TraceData.ClientSideRequestStatisticsTraceDatum, SDK: Windows/10.0.22631 cosmos-netstandard-sdk/3.32.0);.
I am currently using net 8 dotnet-isolated model. And below is my .csproj file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<OutputType>Exe</OutputType>
<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Azure.Identity" Version="1.11.0" />
<PackageReference Include="Azure.Messaging.ServiceBus" Version="7.17.5" />
<PackageReference Include="Bogus" Version="35.5.1" />
<PackageReference Include="FlexOrder.Models" Version="1.0.2" />
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
<PackageReference Include="Microsoft.Azure.Cosmos" Version="3.41.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.22.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.2.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.CosmosDB" Version="4.9.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.3.1" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.17.2" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.ServiceBus" Version="5.17.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" />
</ItemGroup>
</Project>
Any guidance or suggestion will be appreciated.