public static async System.Threading.Tasks.Task RunAsync([QueueTrigger("eventqueue", Connection = "AzureWebJobsStorage")] CreateReportRequested request, [Table("downloads", Connection = "AzureWebJobsStorage")] IAsyncCollector <UserReportRecord> download, [Blob("user-reports", Connection = "AzureWebJobsStorage")] CloudBlobContainer container, ILogger log) { if (await container.CreateIfNotExistsAsync()) { var permissions = await container.GetPermissionsAsync(); permissions.PublicAccess = BlobContainerPublicAccessType.Blob; await container.SetPermissionsAsync(permissions); } var blob = container.GetBlockBlobReference($"{request.Id}.pdf"); var pdfFile = PDFGenerator.GeneratePDF(request); await blob.UploadFromByteArrayAsync(pdfFile, 0, pdfFile.Length); var url = blob.Uri.AbsoluteUri; await download.AddAsync(new UserReportRecord { PartitionKey = "UserReport", RowKey = request.Id.ToString(), Name = $"{request.FirstName} {request.LastName}", Url = url }); }
public static void Run( [QueueTrigger("eventqueue", Connection = "AzureWebJobsStorage")] CreateReportRequested request, [Table("downloads", Connection = "AzureWebJobsStorage")] out UserReportRecord download, [Blob("user-reports", Connection = "AzureWebJobsStorage")] CloudBlobContainer container, TraceWriter log) { if (container.CreateIfNotExists()) { var permissions = container.GetPermissions(); permissions.PublicAccess = BlobContainerPublicAccessType.Blob; container.SetPermissions(permissions); } var blob = container.GetBlockBlobReference($"{request.Id}.pdf"); var pdfFile = PDFGenerator.GeneratePDF(request); blob.UploadFromByteArray(pdfFile, 0, pdfFile.Length); var url = blob.Uri.AbsoluteUri; download = new UserReportRecord { PartitionKey = "UserReport", RowKey = request.Id.ToString(), Name = $"{request.FirstName} {request.LastName}", Url = url }; }