Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

490
Visualizações
¿Inyectar la cadena de conexión const de CosmosDB en el enlace de entrada/salida de CosmosDB de Azure Function V4?

¿Alguien sabe si es posible pasar/inyectar una cadena de conexión constante (u otro valor de configuración) desde la hoja de configuración de Azure Functions?

Tome esta firma vinculante, por ejemplo:

 [Function("APIHttpInput")] [CosmosDBOutput("%CosmosDb%", "%CosmosContainerOut%", ConnectionStringSetting = "CosmosDBConnection", CreateIfNotExists = true)] public static async Task<object> RunAsync( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "cosmosin")] HttpRequestData req, FunctionContext executionContext) { var logger = executionContext.GetLogger("APIHttpInput"); logger.LogInformation("C# HTTP trigger function processed a request."); // etc... }

Obtiene la cadena de conexión de local.settings.json , lo cual está bien, funciona de esa manera, pero no se sobrescriben en la canalización de CI/CD predeterminada y no están destinados a ser enviados a producción.

He leído la documentación oficial: https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#customizing-configuration-sources pero esto no permite utilizarlos en el enlace porque se pasan a través de DI (lo cual es genial, pero no del todo).

Una alternativa es escribirlos manualmente en Cosmos y usar DI. Esto no es realmente lo que quiero porque tengo la siguiente función que consume datos:

 [Function("APICosmosTrigger")] //[CosmosDBOutput("%CosmosDb%", "%CosmosContainerOut%", ConnectionStringSetting = "CosmosDBConnection", CreateIfNotExists = true)] public static void RunCosmos([CosmosDBTrigger( databaseName: "%CosmosDb%", collectionName: "%CosmosContainerOut%", ConnectionStringSetting = "CosmosDBConnection", LeaseCollectionName = "leases")] IReadOnlyList<Record> leads, FunctionContext executionContext, IRestClient client) { // do stuff... }

Con suerte, el resultado final sería que los campos de enlace (a continuación) se pueden configurar a través de la hoja de configuración:

  • "%CosmosDb%"
  • "%CosmosContainerOut%"
  • ConnectionStringSetting = "CosmosDBConnection"

PD: He visto algunas preguntas muy cercanas a esto, pero no se trata del problema del atributo vinculante.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Todos los enlaces de funciones (Cosmos, Storage, EventHub, etc.) se rigen por la misma mecánica de reemplazo para los valores en las configuraciones, también conocidas como expresiones de enlace .

Normalmente, el archivo local.settings.json no se inserta/publica porque es local para el entorno.

Podría, en su canalización de DevOps, tener variables de entorno que anulen los valores de local.settings.json , por ejemplo.

El artículo que vincula está inicializando la configuración de esta manera:

 builder.ConfigurationBuilder .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: true, reloadOnChange: false) .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false) .AddEnvironmentVariables();

Entonces, si define una variable de entorno en DevOps, debería poder anular lo que esté definido en el archivo json.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda