Öğretici: Azure Işlevleri 'ni kullanarak bir Batch işi tetikleyin
Bu öğreticide, Azure işlevleri'ni kullanarak bir toplu işi nasıl tetikleyeceğinizi öğreneceksiniz. Azure Depolama blob kapsayıcısına eklenen belgelere, Azure Batch aracılığıyla bunlara uygulanan optik karakter tanıma (OCR) ile bir örnek adım adım inceleyeceğiz. OCR işlemesini kolaylaştırmak için, blob kapsayıcısına her dosya eklendiğinde bir Batch OCR işi çalıştıran bir Azure işlevi yapılandıracağız. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Havuzlar ve işler oluşturmak için Batch Explorer kullanma
- blob kapsayıcıları ve paylaşılan erişim imzası (SAS) oluşturmak için Depolama Gezgini kullanın
- Blob ile tetiklenen bir Azure Işlevi oluşturma
- Depolama hizmetine giriş dosyaları yükleme
- Görev yürütmeyi izleme
- Çıkış dosyalarını alma
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Bir Azure Batch hesabı ve bağlı bir Azure Depolama hesabı. Hesap oluşturma ve bağlama hakkında daha fazla bilgi için bkz. Batch hesabı oluşturma .
- Batch Explorer.
- Azure Depolama Gezgini.
Azure'da oturum açma
Azure Portal’ında oturum açın.
Batch Explorer kullanarak bir Batch havuzu ve toplu iş oluşturma
Bu bölümde, OCR görevlerini çalıştıracak toplu iş havuzunu ve toplu işi oluşturmak için Batch Explorer kullanacaksınız.
Havuz oluşturma
- Batch Explorer için Azure kimlik bilgilerinizi kullanarak oturum açın.
- Sol taraftaki çubukta havuzlar ' ı seçerek bir havuz oluşturun, sonra arama formunun üzerindeki Ekle düğmesine basın.
- Bir KIMLIK ve görünen ad seçin.
ocr-poolBu örnek için kullanacağız. - Ölçek türünü sabit boyut olarak ayarlayın ve adanmış düğüm sayısını 3 olarak ayarlayın.
- İşletim sistemi olarak ubuntuserver > 18,04-LTS ' yi seçin.
Standard_f2s_v2Sanal makine boyutu olarak seçin.- Başlangıç görevini etkinleştirin ve komutunu ekleyin
/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". Kullanıcı kimliğini görev kullanıcısı (yönetici) olarak ayarladığınızdan emin olun. Bu, ile komutları dahil etmek için başlangıç görevlerine izin verirsudo. - Tamam’ı seçin.
- Bir KIMLIK ve görünen ad seçin.
Bir iş oluşturma
- Sol taraftaki çubukta işler ' i seçerek havuzda iş oluşturun, sonra arama formunun üzerindeki Ekle düğmesine basın.
- Bir KIMLIK ve görünen ad seçin.
ocr-jobBu örnek için kullanacağız. - Havuzu
ocr-poolveya havuzunuz için seçtiğiniz herhangi bir adı ayarlayın. - Tamam’ı seçin.
- Bir KIMLIK ve görünen ad seçin.
Blob kapsayıcıları oluşturma
Burada, OCR toplu işi için giriş ve çıkış dosyalarınızı depolayacak blob kapsayıcıları oluşturacaksınız. Bu örnekte, giriş kapsayıcısı olarak adlandırılır ve bu, input OCR olmayan tüm belgelerin işlenmek üzere ilk olarak karşıya yüklendiği yerdir. Çıkış kapsayıcısı olarak adlandırılır output ve toplu işin, işlenen BELGELERI OCR ile yazdığı yerdir.
- Depolama Gezgini için Azure kimlik bilgilerinizi kullanarak oturum açın.
- Batch hesabınıza bağlı depolama hesabını kullanarak, BLOB kapsayıcısı oluşturmakonumundaki adımları izleyerek iki blob kapsayıcı (bir diğeri çıkış dosyaları için bir tane) oluşturun.
- çıkış kapsayıcısına sağ tıklayıp, paylaşılan erişim imzası al... öğesini seçerek çıkış kapsayıcınız için bir paylaşılan erişim imzası oluşturun Depolama Gezgini. İzinler altında, yaz' ı seçin. Başka izin gerekmez.
Azure İşlevi oluşturma
Bu bölümde, giriş kapsayıcınıza her dosya yüklendiğinde OCR toplu işini tetikleyen Azure Işlevini oluşturacaksınız.
- Bir işlev oluşturmak için Azure Blob depolama tarafından tetiklenen bir Işlev oluşturma bölümündeki adımları izleyin.
- Çalışma zamanı yığını için .net ' i seçin. Batch .NET SDK 'sının yararlanmak Için C# ' de işlevimizi yazacağız.
- Barındırma altında bir depolama hesabı Istendiğinde, Batch hesabınıza bağladığınız depolama hesabını kullanın.
- Azure Blob depolama hesabı tetikleyicisi oluştururken, yolu
input/{name}(giriş kapsayıcının adıyla eşleşecek şekilde) ayarladığınızdan emin olun.
- Blob ile tetiklenen işlev oluşturulduktan sonra kod + test' i seçin.
run.csxfunction.projişlevindeki GitHub ve öğesinden kullanın.function.projvarsayılan olarak mevcut değildir, bu nedenle Upload düğmesini seçerek geliştirme çalışma alanınıza yükleyin.run.csx, giriş blobu kapsayıcınıza yeni bir blob eklendiğinde çalıştırılır.function.projIşlev kodunuzda dış kitaplıkları listeler, örneğin Batch .NET SDK.
- Dosya işlevindeki değişkenlerin yer tutucu değerlerini
Run()run.csxyığın ve depolama kimlik bilgilerinizi yansıtacak şekilde değiştirin. Batch ve Storage hesabı kimlik bilgilerinizi Batch hesabınızın anahtarlar bölümündeki Azure Portal bulabilirsiniz.- Batch hesabınızın anahtarlar bölümündeki Azure Portal Batch ve Storage hesabı kimlik bilgilerinizi alın.
İşlevi tetikleme ve sonuçları alma
taranan dosyaların herhangi birini veya tümünü, input_files giriş kapsayıcınıza GitHub dizinden Upload. Her dosya için bir görevin eklendiğini doğrulamak üzere Batch Explorer izleyin ocr-pool . Birkaç saniye sonra, OCR uygulanmış dosya çıkış kapsayıcısına eklenir. dosya daha sonra görünür ve Depolama Gezgini alınabilir.
Ayrıca, Azure Işlevleri Web Düzenleyicisi penceresinin alt kısmında bulunan günlük dosyasını izleyebilirsiniz. burada, giriş kapsayıcınıza yüklediğiniz her dosya için bunun gibi iletiler görürsünüz:
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>...
çıkış dosyalarını Depolama Gezgini yerel makinenize indirmek için önce istediğiniz dosyaları seçin ve ardından üst şeritte indir ' i seçin.
İpucu
İndirilen dosyalar bir PDF okuyucusunda açılırsa aranabilir.
Kaynakları temizleme
Zamanlanmış bir iş olmasa bile, düğümler çalışırken havuz için sizden ücret alınır. Havuza artık ihtiyacınız kalmadığında, aşağıdaki adımlarla silin:
- Hesap görünümünde Havuzlar'ı ve havuzun adını seçin.
- 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 değilse, 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.