Función de Azure aislada de C#:parámetro BlobOutput

 C Programming >> Programación C >  >> Tags >> Azure
Función de Azure aislada de C#:parámetro BlobOutput

Solución para C# AzureFunction aislado:el parámetro BlobOutput
se proporciona a continuación:

¿Cómo puedo pasar el parámetro a BlobOutput?
Necesito generar un nombre de blob en tiempo de ejecución. ¿Hay alguna forma declarativa de hacerlo?
Aquí puede ver que necesito establecer el valor del parámetro "nombre".

    [BlobOutput("container/{name}", Connection = "AzureWebJobsStorage")]
        public static object Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req, out string name,
            FunctionContext executionContext)
{...}

Jugué con el contexto de ejecución pero sin suerte.

No creo que pueda obtener el nombre de blob como este desde el disparador http. Puedo pensar en las siguientes opciones.

  1. Utilice la función desencadenada por cola o blob. Con eso, obtendrá el nombre del blob de forma dinámica a partir de los propios datos de activación. Por ejemplo,

     public static void Run(
     [BlobTrigger("sample-images/{name}")] Stream image,
     [Blob("sample-images-md/{name}", FileAccess.Write)] Stream imageSmall)
    

    {

  2. Use la expresión de enlace del sistema para formar el nombre del blob de salida.

     public static async Task<IActionResult> Run(
         [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "blobname")] HttpRequest req,
         [Blob("sourcefolder/output{DateTime.UtcNow}", FileAccess.Write, Connection = "AzureWebJobsStorage")] Stream blobStream,
         ILogger log)
     {
    
  3. Quite el enlace de salida por completo y cree un cliente de blob en la propia función. Eso le dará control total sobre el nombre del blob o cualquier otra cosa que necesite. Si tiene varias funciones en su aplicación, es mejor crear un servicio único y tener este objeto de conexión allí.


No