[17.0] Document breaking change: Azure Cosmos DB `configureClientOptions` callback now receives `IServiceProvider`
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 85/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- csharp, markdown
- Ambito
- documentation
Direzione di ricerca
Leggi la tabella delle modifiche incompatibili in src/frontend/src/content/docs/whats-new/aspire-13-3.mdx e la sezione configureClientOptions di src/frontend/src/content/docs/integrations/cloud/azure/azure-cosmos-db/azure-cosmos-db-connect.mdx. Aggiungi la modifica incompatibile di Aspire 17.0 alla pagina What's new della versione 17.0 quando sarà disponibile e valuta l’aggiunta di un esempio aggiornato di callback alla pagina dell’integrazione. Il lavoro è completato quando la modifica, il suo impatto sulla compatibilità e la migrazione sono documentati con precisione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In Aspire 17.0, the configureClientOptions parameter in the stable Aspire.Microsoft.Azure.Cosmos client integration changed from Action<CosmosClientOptions>? to Action<IServiceProvider, CosmosClientOptions>?. The old signatures were removed rather than kept as overloads. This breaks both source and binary compatibility, so it should be listed in the 17.0 breaking changes.
- Code change: microsoft/aspire#19349 (partially addresses microsoft/aspire#667)
- Raised in the 17.0 API review: https://github.com/microsoft/aspire/pull/22185#discussion_r4552196618
- The change was held for 17.0 so it could ship as a breaking change: https://github.com/microsoft/aspire/pull/22185#discussion_r4553509110
The change applies to all six methods on Microsoft.Extensions.Hosting.AspireMicrosoftAzureCosmosExtensions:
AddAzureCosmosClientandAddKeyedAzureCosmosClientAddAzureCosmosContainerandAddKeyedAzureCosmosContainerAddAzureCosmosDatabaseandAddKeyedAzureCosmosDatabase
- Action<CosmosClientOptions>? configureClientOptions = null
+ Action<IServiceProvider, CosmosClientOptions>? configureClientOptions = null
Why it changed
The callback can now resolve services from DI while it configures the client. For example, it can add RequestHandler instances that have their own dependencies to CosmosClientOptions.CustomHandlers.
Impact
- Source: passing a single-parameter lambda, a method group, or an
Action<CosmosClientOptions>variable asconfigureClientOptionsno longer compiles. Calls that don't passconfigureClientOptionsstill compile. - Binary: assemblies compiled against 13.x that call any of these methods throw
MissingMethodExceptionat run time, even if they don't passconfigureClientOptions. - Behavior:
configureClientOptionsnow runs when theCosmosClientis first resolved from DI, not during registration, so an exception thrown by the callback surfaces at that point. Likewise,CosmosDatabaseBuilder.AddKeyedContainerno longer creates theCosmosClientduring registration, so missing connection information is reported when the container is first resolved.
Migration
Add an IServiceProvider parameter to the callback:
// Aspire 13.x
builder.AddAzureCosmosClient("cosmos", configureClientOptions: options =>
{
options.ApplicationName = "myapp";
});
// Aspire 17.0
builder.AddAzureCosmosClient("cosmos", configureClientOptions: (services, options) =>
{
options.ApplicationName = "myapp";
});
The new parameter can resolve services that the options need:
builder.Services.AddSingleton<MyRequestHandler>(); // MyRequestHandler derives from RequestHandler
builder.AddAzureCosmosClient("cosmos", configureClientOptions: (services, options) =>
{
options.CustomHandlers.Add(services.GetRequiredService<MyRequestHandler>());
});
Where to document
- Add a row to the ⚠️ Breaking changes table on the 17.0 What's new page. There's no
whats-new/aspire-17*.mdxonmainyet; follow the table in aspire-13-3.mdx. - Consider adding a
configureClientOptionsexample next to the inline delegates example in azure-cosmos-db-connect.mdx, which only showsconfigureSettingstoday. The package README has an updated example.
- Lingua principale
- MDX
- Stelle
- 202
- Fork
- 99
- Merge medio
- 2g 10h
- PR unite (30g)
- 97
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/aspire.dev
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/aspire.dev#2131 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
microsoft/aspire.dev#2129 ·
I maintainer di solito rispondono entro 2 giorni
-
Docs: note that Bun resources don't trust the dev cert via NODE_EXTRA_CA_CERTS (upstream Bun bug)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
microsoft/aspire.dev#1802 · 3 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
[docs] Missing information about the dotnet container steps around image being built locallyForse già presa @IEvangelist l’ha presa 54 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/aspire.dev#1288 · 1 reazione · 2 assegnatari ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
microsoft/aspire.dev#2114 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/aspire.dev
Issue simili
-
area:mcp effort:low P5 source:agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
README says the land/sea mask must match the XS grid; the demo mask does not, and Step 4 worksForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadocumentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
buckai-observatory/Automated-Cloud-Removal-and-Seamless-Satellite-Image-Mosaicking-Pipeline#52 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
run-llama/llama_index#24163 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
TMHSDigital/Static_Chess#48 ·