Azure / Azure/azure-functions-sql-extension

Can't use `Azure App Configuration` as a source for `ConnectionStringSetting`

Open
#1,149 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
130
Forks
71
Avg merge
4d 8h
Merged PRs (30d)
4

Description

- Azure Functions SQL Extension or Extension Bundle Version:
c# net8 isolated function
Microsoft.Azure.Functions.Worker.Extensions.Sql;3.1.284
- Is this a deployed or local function: either
- What type of Database are you using? (Run `SELECT @@VERSION as Version, SERVERPROPERTY('EngineEdition') as EngineEdition` on your database)
deployed: Microsoft SQL Azure (RTM) - 12.0.2000.8
Oct 2 2024 11:51:41
Copyright (C) 2022 Microsoft Corporation, 5
local: Version EngineEdition
Microsoft SQL Server 2019 (RTM-CU27-GDR) (KB5040948) - 15.0.4382.1 (X64)
Jul 1 2024 20:03:23
Copyright (C) 2019 Microsoft Corporation
Express Edition (64-bit) on Windows 10 Enterprise 10.0 (Build 22621: ) (Hypervisor), 4

- List any custom settings for your function app. This could be a custom time-out defined specifically for your database server or optional configuration that can be customized for the app defined [here](https://learn.microsoft.com/azure/azure-functions/functions-bindings-azure-sql-trigger?tabs=isolated-process%2Cportal&pivots=programming-language-csharp#optional-configuration).
no custom settings

Steps to Reproduce:

1. add App Configuration instance to IConfigation

Program.cs
```csharp
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureAppConfiguration(
builder =>
{
var config = builder.Build();
builder.AddAzureAppConfiguration(options =>
{
options.Connect(config["AppConfigConnectionString"]);
});
})
.Build();

host.Run();
```

3. specify key that is defined in Azure App Configuration

CollectEvents.cs
```csharp
using Azure.Messaging.EventGrid;

using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Sql;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace Test;

public class CollectEvents
{
private readonly ILogger _logger;
private readonly IConfiguration _config;

public CollectEvents(ILogger logger, IConfiguration config)
{
_logger = logger;
_config = config;
}

[Function("CollectEvents")]
[SqlOutput("Operations.ActivityLog",
"SqlConnectionString" // complains about missing connection string
)]
public ActivityLog Run([EventGridTrigger] EventGridEvent eventGridEvent)
{
_logger.LogInformation("SqlConnectionString: {SqlConnectionString}",
_config["SqlConnectionString"]); // outputs expected connection string

var log = new ActivityLog
{
Id = eventGridEvent.Id,
EventTime = eventGridEvent.EventTime,
EventType = eventGridEvent.EventType,
Subject = eventGridEvent.Subject,
DataVersion = eventGridEvent.DataVersion,
Topic = eventGridEvent.Topic,
};
return log;
}
}

public class ActivityLog
{
public string Id { get; set; } = null!;
public DateTimeOffset EventTime { get; set; }
public string EventType { get; set; } = null!;
public string Subject { get; set; } = null!;
public string DataVersion { get; set; } = null!;
public string? Topic { get; set; }
}

```

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue using the Program.cs Azure App Configuration setup and the CollectEvents.cs SqlOutput binding shown in the report, in either the local or deployed configuration. Trace how the SqlConnectionString setting is resolved; the work is done when the key supplied by Azure App Configuration is accepted by the SQL output binding without a missing-connection-string error.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp, sql
Domain
backend, cloud, database
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.