| File: IResourceWithAzureFunctionsConfig.cs | Web Access |
| Project: src\src\Aspire.Hosting.Azure\Aspire.Hosting.Azure.csproj (Aspire.Hosting.Azure) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Hosting.ApplicationModel; namespace Aspire.Hosting.Azure; /// <summary> /// Represents an resource that can provide configuration for Azure Functions. /// </summary> public interface IResourceWithAzureFunctionsConfig : IResource { /// <summary> /// Applies the Azure Functions configuration to the target dictionary. /// </summary> /// <param name="target">The dictionary to which the Azure Functions configuration will be applied.</param> /// <param name="connectionName">The name of the connection key to be used for the given configuration.</param> /// <remarks> /// <para> /// Implementations should populate the <paramref name="target"/> dictionary with keys that match /// the format expected by the Azure Functions runtime, and values that are valid connection strings /// or service URIs. /// </para> /// <para> /// For Azure Functions listener initialization, use keys like: /// <list type="bullet"> /// <item><c>{connectionName}</c> for connection strings (typically used with emulators)</item> /// <item><c>{connectionName}__fullyQualifiedNamespace</c> for Azure Event Hubs and Azure Service Bus endpoints</item> /// <item><c>{connectionName}__blobServiceUri</c> and <c>{connectionName}__queueServiceUri</c> for Azure Blob Storage and Azure Queue Storage</item> /// <item><c>{connectionName}__accountEndpoint</c> for Azure Cosmos DB account endpoints</item> /// </list> /// </para> /// <para> /// For Aspire client integration support, use keys following the pattern: /// <c>Aspire__{ServiceType}__{connectionName}__{Property}</c> where <c>{ServiceType}</c> is the /// service namespace (e.g., <c>Azure__Messaging__EventHubs</c>, <c>Azure__Messaging__ServiceBus</c>, /// <c>Azure__Storage__Blobs</c>, <c>Microsoft__Azure__Cosmos</c>) and <c>{Property}</c> is typically /// <c>ConnectionString</c>, <c>ServiceUri</c>, <c>FullyQualifiedNamespace</c>, or <c>AccountEndpoint</c>. /// </para> /// </remarks> void ApplyAzureFunctionsConfiguration(IDictionary<string, object> target, string connectionName); }