Öğretici: Azure Işlevleri 'ni kullanarak bir Batch işi tetikleyinTutorial: Trigger a Batch job using Azure Functions

Bu öğreticide, Azure Işlevleri 'ni kullanarak bir toplu işi nasıl tetikleyeceğinizi öğreneceksiniz.In this tutorial, you'll learn how to trigger a Batch job using Azure Functions. Azure Storage 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.We'll walk through an example in which documents added to an Azure Storage blob container have optical character recognition (OCR) applied to them via Azure Batch. 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.To streamline the OCR processing, we will configure an Azure function that runs a Batch OCR job each time a file is added to the blob container.

Ön koşullarPrerequisites

Azure'da oturum açınSign in to Azure

Azure Portal’ında oturum açın.Sign in to the Azure portal.

Batch Explorer kullanarak bir Batch havuzu ve toplu iş oluşturmaCreate a Batch pool and Batch job using Batch Explorer

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.In this section, you'll use Batch Explorer to create the Batch pool and Batch job that will run OCR tasks.

Havuz oluşturmaCreate a pool

  1. Batch Explorer için Azure kimlik bilgilerinizi kullanarak oturum açın.Sign in to Batch Explorer using your Azure credentials.
  2. Sol taraftaki çubukta havuzlar ' ı seçerek bir havuz oluşturun, sonra arama formunun üzerindeki Ekle düğmesine basın.Create a pool by selecting Pools on the left side bar, then the Add button above the search form.
    1. Bir KIMLIK ve görünen ad seçin.Choose an ID and display name. Bu örnek için ocr-pool kullanacağız.We'll use ocr-pool for this example.
    2. Ölçek türünü sabit boyutolarak ayarlayın ve adanmış düğüm sayısını 3 olarak ayarlayın.Set the scale type to Fixed size, and set the dedicated node count to 3.
    3. İşletim sistemi olarak Ubuntu 18,04-LTS ' yi seçin.Select Ubuntu 18.04-LTS as the operating system.
    4. Sanal makine boyutu olarak Standard_f2s_v2 seçin.Choose Standard_f2s_v2 as the virtual machine size.
    5. Başlangıç görevini etkinleştirin 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"ekleyin.Enable the start task and add the command /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 varsayılan kullanıcısı (yönetici) olarak ayarladığınızdan emin olun. Bu, başlangıç görevlerinin sudokomutları içermesini sağlar.Be sure to set the user identity as Task default user (Admin), which allows start tasks to include commands with sudo.
    6. Tamam’ı seçin.Select OK.

Bir iş oluşturmaCreate a job

  1. Sol taraftaki çubukta işler ' i seçerek havuzda iş oluşturun, sonra arama formunun üzerindeki Ekle düğmesine basın.Create a job on the pool by selecting Jobs on the left side bar, then the Add button above the search form.
    1. Bir KIMLIK ve görünen ad seçin.Choose an ID and display name. Bu örnek için ocr-job kullanacağız.We'll use ocr-job for this example.
    2. Havuzu ocr-poolveya havuzunuz için seçtiğiniz herhangi bir adı ayarlayın.Set the pool to ocr-pool, or whatever name you chose for your pool.
    3. Tamam’ı seçin.Select OK.

Blob kapsayıcıları oluşturmaCreate blob containers

Burada, OCR toplu işi için giriş ve çıkış dosyalarınızı depolayacak blob kapsayıcıları oluşturacaksınız.Here you'll create blob containers that will store your input and output files for the OCR Batch job.

  1. Depolama Gezgini için Azure kimlik bilgilerinizi kullanarak oturum açın.Sign in to Storage Explorer using your Azure credentials.
  2. 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.Using the storage account linked to your Batch account, create two blob containers (one for input files, one for output files) by following the steps at Create a blob container.

Bu örnekte, giriş kapsayıcısına input adı verilir ve OCR olmayan tüm belgelerin işlenmek üzere başlangıçta karşıya yüklendiği yerdir.In this example, the input container is named input and is where all documents without OCR are initially uploaded for processing. Çıkış kapsayıcısına output adı verilir ve toplu iş, işlenen belgeleri OCR ile yazar.The output container is named output and is where the Batch job writes processed documents with OCR.
* Bu örnekte, giriş kapsayımuzu inputve çıkış kapsayımızın outputarayacağız.In this example, we'll call our input container input, and our output container output.
* Giriş kapsayıcısı, OCR olmayan tüm belgelerin başlangıçta karşıya yüklendiği yerdir.The input container is where all documents without OCR are initially uploaded.
* Çıktı kapsayıcısı, toplu işin belge OCR ile yazdığı yerdir.The output container is where the Batch job writes documents with OCR.

Depolama Gezgini ' de çıkış Kapsayıcınız için bir paylaşılan erişim imzası oluşturun.Create a shared access signature for your output container in Storage Explorer. Bunu, çıkış kapsayıcısına sağ tıklayıp, paylaşılan erişim Imzası al.. . seçeneğini belirleyerek yapın. İzinleraltında, yazma' yı işaretleyin.Do this by right-clicking on the output container and selecting Get Shared Access Signature.... Under Permissions, check Write. Başka izin gerekmez.No other permissions are necessary.

Azure İşlevi oluşturmaCreate an Azure Function

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.In this section you'll create the Azure Function that triggers the OCR Batch job whenever a file is uploaded to your input container.

  1. 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.Follow the steps in Create a function triggered by Azure Blob storage to create a function.
    1. Bir depolama hesabı istendiğinde, Batch hesabınıza bağladığınız depolama hesabını kullanın.When prompted for a storage account, use the same storage account that you linked to your Batch account.
    2. Çalışma zamanı yığınıiçin .net ' i seçin.For runtime stack, choose .NET. Batch .NET SDK özelliğinden yararlanmak için C# ' de işlevimizi yazacağız.We'll write our function in C# to leverage the Batch .NET SDK.
  2. Blob ile tetiklenen işlev oluşturulduktan sonra, Işlevindeki GitHub 'dan run.csx ve function.proj kullanın.Once the blob-triggered function is created, use the run.csx and function.proj from GitHub in the Function.
    • Giriş blobu kapsayıcınıza yeni bir blob eklendiğinde run.csx çalıştırılır.run.csx is run when a new blob is added to your input blob container.
    • function.proj, Işlev kodunuzda dış kitaplıkları listeler, örneğin Batch .NET SDK.function.proj lists the external libraries in your Function code, for example, the Batch .NET SDK.
  3. run.csx dosyasının Run() işlevindeki değişkenlerin yer tutucu değerlerini, Batch ve depolama kimlik bilgilerinizi yansıtacak şekilde değiştirin.Change the placeholder values of the variables in the Run() function of the run.csx file to reflect your Batch and storage credentials. Batch ve Storage hesabı kimlik bilgilerinizi Batch hesabınızın anahtarlar bölümündeki Azure Portal bulabilirsiniz.You can find your Batch and storage account credentials in the Azure portal in the Keys section of your Batch account.
    • Batch hesabınızın anahtarlar bölümündeki Azure Portal Batch ve Storage hesabı kimlik bilgilerinizi alın.Retrieve your Batch and storage account credentials in the Azure portal in the Keys section of your Batch account.

İşlevi tetikleme ve sonuçları almaTrigger the function and retrieve results

Taranmış dosyaların herhangi birini veya tümünü GitHub 'daki input_files dizininden giriş kapsayıcınıza yükleyin.Upload any or all of the scanned files from the input_files directory on GitHub to your input container. Her dosya için ocr-pool bir görevin eklendiğini onaylamak için Batch Explorer izleyin.Monitor Batch Explorer to confirm that a task gets added to ocr-pool for each file. Birkaç saniye sonra, OCR uygulanmış dosya çıkış kapsayıcısına eklenir.After a few seconds, the file with OCR applied is added to the output container. Dosya daha sonra görünür ve Depolama Gezgini alınabilir.The file is then visible and retrievable on Storage Explorer.

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:Additionally, you can watch the logs file at the bottom of the Azure Functions web editor window, where you'll see messages like this for every file you upload to your input container:

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 İndir ' i seçin.To download the output files from Storage Explorer to your local machine, first select the files you want and then select the Download on the top ribbon.

İpucu

İndirilen dosyalar bir PDF okuyucusunda açılırsa aranabilir.The downloaded files are searchable if opened in a PDF reader.

Sonraki adımlarNext steps

Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:In this tutorial you learned how to:

  • Havuzlar ve işler oluşturmak için Batch Explorer kullanmaUse Batch Explorer to create pools and jobs
  • Blob kapsayıcıları ve paylaşılan erişim imzası (SAS) oluşturmak için Depolama Gezgini kullanınUse Storage Explorer to create blob containers and a shared access signature (SAS)
  • Blob ile tetiklenen bir Azure Işlevi oluşturmaCreate a blob-triggered Azure Function
  • Depolama hizmetine giriş dosyaları yüklemeUpload input files to Storage
  • Görev yürütmeyi izlemeMonitor task execution
  • Çıkış dosyalarını almaRetrieve output files