2015-10-05 31 views
5

Tôi có một exe kế thừa có đường dẫn tệp máy cục bộ, xử lý nó và tạo tệp đầu ra theo một lần nữa đường dẫn cục bộ. Điều này có thể được chạy trên Azure Webjob?Azure Webjob - truy cập hệ thống tệp cục bộ

Tôi đã suy nghĩ để viết một exe wrapper mà tải tập tin từ lưu trữ blob -> lưu trữ nó trong hệ thống tập tin địa phương -> gọi exe di sản với đường dẫn tập tin địa phương -> lấy đầu ra và tải nó lên blob một lần nữa.

Cách tiếp cận này có hiệu quả hoặc có những hạn chế không?

+0

Tôi nhận thấy bài đăng này đã cũ, nhưng bạn đã bao giờ tìm ra giải pháp chưa? Tôi có cùng một vấn đề cố gắng truy cập các đường dẫn tệp cục bộ qua webjob. –

Trả lời

3

exe ​​như vậy sẽ chạy tốt, miễn là bạn có thể vượt qua nó các thư mục để viết từ/đến. Trước khi vào WebJob, tôi đề nghị kiểm tra nó theo cách thủ công trong một Ứng dụng Web sử dụng Kudu Console, để đảm bảo nó chạy tốt.

Sau đó, nếu mục tiêu của bạn là làm cho nó hoạt động với đầu vào/đầu ra blob, exe trình bao sẽ hoạt động. Rõ ràng, nó muốn được sạch hơn để có nó trực tiếp làm việc với các dòng blog, nhưng nếu exe di sản là một nhất định và không thể thay đổi, cách tiếp cận wrapper nên được tốt.

+0

Cảm ơn David. Tôi sẽ thử Kudu Console – user3863695

+0

Tôi đã thử trong giao diện điều khiển Kudu ở đây là phát hiện: exe cũ có một số phụ thuộc vào Windows SDK như (Windows 8.1 SDK và SDK điện thoại), do đó, nó không chạy được. Nó sẽ có thể có exe di sản này vẫn chạy trên Azure WebJob? – user3863695

+1

Nó sẽ chỉ có thể chạy nếu bạn tìm thấy một cách để mang lại các phụ thuộc có liên quan với nó (không phải luôn luôn có thể nếu đó là những điều hệ thống cấp thấp). Ig không có cách nào để làm cho nó hoạt động thông qua Kudu Console, sau đó nó sẽ không hoạt động thông qua WebJobs, vì tất cả đều chạy trong cùng một môi trường. –

4

Nếu bạn kết thúc bằng văn bản trình bao bọc, thì phần mở rộng Ràng buộc tệp cho SDK WebJobs có thể bạn quan tâm: https://github.com/Azure/azure-webjobs-sdk-extensions. Ví dụ:

// When new files arrive in the "import" directory, they 
    // are uploaded to a blob container then deleted. 
    public static void ImportFile(
     [FileTrigger(@"import\{name}", "*.dat", autoDelete: true)] Stream file, 
     [Blob(@"processed/{name}")] CloudBlockBlob output, 
     string name, 
     TextWriter log) 
    { 
     output.UploadFromStream(file); 
     file.Close(); 

     log.WriteLine(string.Format("Processed input file '{0}'!", name)); 
    } 
+0

Cảm ơn mathewc. Tôi sẽ thử phần mở rộng File binding. – user3863695

Các vấn đề liên quan