Öğretici: Azure İşlevleri kullanarak Batch işi tetikleme
Bu öğreticide, Azure İşlevleri kullanarak batch işi tetiklemeyi öğreneceksiniz. Bu makalede, Azure Depolama blob kapsayıcısına eklenen belgelerin Azure Batch kullanarak optik karakter tanıma (OCR) uyguladığı bir örnek açıklanmaktadır. Bu örnekte, OCR işlemeyi kolaylaştırmak için blob kapsayıcısına her dosya eklendiğinde Batch OCR işi çalıştıran bir Azure işlevi yapılandırılır. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Havuzlar ve işler oluşturmak için Azure portal kullanın.
- Blob kapsayıcıları ve paylaşılan erişim imzası (SAS) oluşturun.
- Blob ile tetiklenen bir Azure İşlevi oluşturun.
- Giriş dosyalarını Depolama'ya yükleyin.
- Görev yürütmeyi izleyin.
- Çıkış dosyalarını alın.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Bir Azure Batch hesabı ve bağlı bir Azure Depolama hesabı. Hesapları oluşturma ve bağlama hakkında daha fazla bilgi için bkz . Batch hesabı oluşturma.
Azure'da oturum açma
Azure Portal’ında oturum açın.
Azure portal kullanarak Batch havuzu ve Batch işi oluşturma
Bu bölümde, OCR görevlerini çalıştıran Batch havuzunu ve Batch işini oluşturmak için Azure portal kullanacaksınız.
Havuz oluşturma
Azure kimlik bilgilerinizi kullanarak Azure portal oturum açın.
Sol taraftaki gezinti bölmesinde Havuzlar'ı ve ardından arama formunun üstündeki Ekle düğmesini seçerek bir havuz oluşturun.
-
Havuz Kimliği girin. Bu örnekte havuzu
ocr-pool
olarak adlandırabilirsiniz. - Yayımcı olarak kurallı seçeneğini belirleyin.
- Teklif olarak 0001-com-ubuntu-server-jammy seçeneğini belirleyin.
- Sku olarak 22_04-lts seçeneğini belirleyin.
-
Düğüm Boyutu bölümünde VM boyutu olarak öğesini seçin
Standard_F2s_v2 - 2 vCPUs, 2 GB Memory
. - Ölçek bölümündeki ModuSabit olarak ayarlayın ve Hedef ayrılmış düğümler için 3 girin.
-
Başlangıç görevi'ni Başlangıç görevietkin olarak ayarlayın ve Komutu
/bin/bash -c "sudo update-locale LC_ALL=C.UTF-8 LANG=C.UTF-8; sudo apt-get update; sudo apt-get -y install ocrmypdf"
Komut satırına girin. Yükseltme düzeyiniHavuz otomatik kullanıcısı olarak ayarladığınızdan emin olun Yönetici, bu da başlangıç görevlerinin ilesudo
komutlar içermesine olanak tanır. - Tamam’ı seçin.
-
Havuz Kimliği girin. Bu örnekte havuzu
Bir iş oluşturma
- Sol taraftaki gezinti bölmesinde İşler'i seçip arama formunun üstündeki Ekle düğmesini seçerek havuzda bir iş oluşturun.
-
bir İş Kimliği girin. Bu örnekte
ocr-job
kullanılmıştır. -
Geçerli havuz için veya havuzunuz için seçtiğiniz adı seçin
ocr-pool
. - Tamam’ı seçin.
-
bir İş Kimliği girin. Bu örnekte
Blob kapsayıcıları oluşturma
Burada, OCR Batch işi için giriş ve çıkış dosyalarınızı depolayan blob kapsayıcıları oluşturacaksınız. Bu örnekte giriş kapsayıcısı adlandırılmıştır input
ve OCR içermeyen tüm belgelerin başlangıçta işlenmek üzere karşıya yüklendiği yerdir. Çıkış kapsayıcısı olarak adlandırılır output
ve Batch işinin işlenen belgeleri OCR ile yazdığı yerdir.
Azure portal Depolama hesaplarını arayın ve seçin.
Batch hesabınıza bağlı depolama hesabınızı seçin.
Sol taraftaki gezinti bölmesinden Kapsayıcılar'ı seçin ve Blob kapsayıcısı oluşturma başlığındaki adımları izleyerek iki blob kapsayıcısı (biri giriş dosyaları, biri çıkış dosyaları için) oluşturun.
Çıkış kapsayıcısını seçerek çıkış kapsayıcınız için paylaşılan erişim imzası oluşturun ve Paylaşılan erişim belirteçleri sayfasında İzinler açılan listesinden Yaz'ı seçin. Başka izin gerekmez.
SAS belirteci ve URL oluştur'u seçin ve daha sonra işlevinizde kullanmak üzere Blob SAS URL'sini kopyalayın.
Azure İşlevi oluşturma
Bu bölümde, giriş kapsayıcınıza her dosya yüklendiğinde OCR Batch işini tetikleyen Azure İşlevini oluşturacaksınız.
İşlev oluşturmak için Azure Blob depolama tarafından tetiklenen bir işlev oluşturma'daki adımları izleyin.
- Çalışma zamanı yığını için .NET'i seçin. Bu örnek işlev, Batch .NET SDK'sının avantajlarından yararlanmak için C# kullanır.
- Depolama sayfasında, Batch hesabınıza bağladığınız depolama hesabını kullanın.
- Gözden Geçir + Oluştur'u >seçin.
Örnek bilgileri kullanarak Temel Bilgiler sekmesindeki İşlev Uygulaması Oluştur sayfasının aşağıdaki ekran görüntüsü.
İşlevinizde sol taraftaki gezinti bölmesinden İşlevler'i ve ardından Oluştur'u seçin.
İşlev oluştur bölmesinde tetikleyiciyi Azure Blob Depolama seçin.
Yeni İşlev'de işleviniz için bir ad girin. Bu örnekte adı OcrTrigger'dır. Yolu olarak
input/{name}
girin; burada Blob kapsayıcınızın adını girin.Oluştur’u seçin.
Blob ile tetiklenen işlev oluşturulduktan sonra Kod + Test'i seçin. İşlevde
run.csx
GitHub'dan vefunction.proj
kullanın.function.proj
varsayılan olarak mevcut değildir, bu nedenle karşıya yükle düğmesini seçerek geliştirme çalışma alanınıza yükleyin.-
run.csx
, giriş blob kapsayıcınıza yeni bir blob eklendiğinde çalıştırılır. -
function.proj
İşlev kodunuzdaki dış kitaplıkları listeler, örneğin Batch .NET SDK'sı.
-
Dosyanın işlevindeki
Run()
run.csx
değişkenlerin yer tutucu değerlerini Batch ve depolama kimlik bilgilerinizi yansıtacak şekilde değiştirin. Batch ve depolama hesabı kimlik bilgilerinizi Batch ve depolama hesabınızın Anahtarlar bölümündeki Azure portal bulabilirsiniz.
İşlevi tetikleme ve sonuçları alma
Taranan dosyaların herhangi birini veya tümünü GitHub dizininden input_files
giriş kapsayıcınıza yükleyin.
İşlevinizin Kod + Test sayfasındaki Azure portal işlevinizi test edebilirsiniz.
- Kod + Test sayfasında Test/çalıştır'ı seçin.
- Giriş sekmesindeki Gövde alanına giriş kapsayıcınızın yolunu girin.
- Çalıştır'ı seçin.
Birkaç saniye sonra, OCR uygulanmış olan dosya çıkış kapsayıcısına eklenir. Günlük bilgileri, en alttaki pencereye doğru çıktısını alır. Dosya daha sonra Depolama Gezgini görünür ve alınabilir.
Alternatif olarak, günlük bilgilerini İzleyici sayfasında bulabilirsiniz:
2019-05-29T19:45:25.846 [Information] Creating job...
2019-05-29T19:45:25.847 [Information] Accessing input container <inputContainer>...
2019-05-29T19:45:25.847 [Information] Adding <fileName> as a resource file...
2019-05-29T19:45:25.848 [Information] Name of output text file: <outputTxtFile>
2019-05-29T19:45:25.848 [Information] Name of output PDF file: <outputPdfFile>
2019-05-29T19:45:26.200 [Information] Adding OCR task <taskID> for <fileName> <size of fileName>...
Çıktı dosyalarını yerel makinenize indirmek için depolama hesabınızdaki çıkış kapsayıcısına gidin. İstediğiniz dosyada diğer seçenekleri belirleyin ve ardından İndir'i seçin.
İpucu
İndirilen dosyalar PDF okuyucuda açılırsa aranabilir.
Kaynakları temizleme
Hiçbir iş zamanlanmış olmasa bile düğümler çalışırken havuz için ücretlendirilirsiniz. Havuza artık ihtiyacınız kalmadığında aşağıdaki adımları izleyerek havuzu silin:
- Batch hesabınızın Havuzlar sayfasından havuzunuzdaki diğer seçenekleri belirleyin.
- Sil’i seçin.
Havuzu sildiğinizde düğümler üzerindeki tüm görev çıkışları silinir. Ancak çıkış dosyaları depolama hesabında kalır. Artık gerekli olmadığında Batch hesabını ve depolama hesabını da silebilirsiniz.
Sonraki adımlar
Batch iş yüklerini zamanlamak ve işlemek üzere .NET API kullanmaya ilişkin daha fazla örnek için GitHub üzerindeki örneklere bakın.