Creé un desencadenador de eventos de almacenamiento para desencadenar una canalización en Azure Data Factory. Este disparador funciona cuando coloco manualmente un archivo en el lago de datos. Pero cuando el archivo se carga desde Azure Function, el activador no funciona.
A continuación se muestra mi función para cargar archivos en datalake.
public void UploadFileToDatalake(FileUpload file, string containerSasUri, string stage, string dir, ILogger log) { log.LogInformation("inside uploadFileTodatalake"); UriBuilder sasUri = new UriBuilder(containerSasUri); DataLakeServiceClient dataLakeServiceClient = new DataLakeServiceClient(sasUri.Uri); string container = Globals._transientContainer; var fileSystemClient = dataLakeServiceClient.GetFileSystemClient(container); string pathFileDL = file.Name; string directory = dir; MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); sw.Write(File.ReadAllText(file.FullPath)); sw.Flush(); ms.Seek(0, SeekOrigin.Begin); file.Content = ms; DataLakeDirectoryClient directoryClient = fileSystemClient.GetDirectoryClient(directory); try { if (directoryClient.Exists()) { log.LogInformation(directoryClient.Name); DataLakeFileClient fileClient = directoryClient.CreateFile(pathFileDL); // 0kb blob file.Content.Position = 0; fileClient.Upload(file.Content, true); log.LogInformation($"{stage}: {file.Name} uploaded to {pathFileDL}"); file.Content.Close(); } } finally { //fileSystemClient.Delete(); } }FileUpload es una clase modelo que estoy usando.
public class FileUpload { public string Name { get; set; } public Stream Content { get; set; } public string FullPath { get; set; } }Gracias por adelantado.
Intenté con el blog cargar un archivo en Azure Blob usando azure function .
Antes de la creación de la función Azure, se creó la canalización Storage Event Trigger para activar cuando el nuevo archivo llega o se crea en el blob de almacenamiento .
Intenté cargar manualmente un archivo mediante azure portal . Se activó la grilla de eventos.
Después de crear y publicar la azure function azure en azure. Ahora ejecute la función azul. Genera los archivos aleatorios en el contenedor de almacenamiento y también se ejecuta el disparador de evento de almacenamiento esperado. Puedo ver la salida Triggered en el portal.