附註:

使用可擴展的雲端原生流程在 Oracle Cloud Infrastructure Object Storage 上處理檔案

簡介

在我們的應用程式中,我們通常需要處理大量的檔案。在過去,這是以批次形式完成的,但隨著新技術和雲端的出現,我們現在能夠將許多序列處理轉換為平行處理。使用訊息佇列、Kubernetes 叢集和事件導向架構是一些廣泛使用的技術和架構,可充分利用大量處理。

Oracle Cloud Infrastructure (OCI) 提供可擴展性和降低成本的資源。讓我們探索雲端原生服務。

在本教學課程中,我們將看到處理大量檔案的常見方式,應用程式可以在其中將檔案存入 OCI 物件儲存的儲存桶,以及當這些檔案存入時,會產生允許觸發函數將此檔案的 URL 寫入 OCI Streaming 的事件。

注意:有些來源應用程式在 OCI Streaming 中儲存檔案內容時,我們可以想像此解決方案,而我們的應用程式剛讀取此內容,但是在 Kakfa 佇列中傳輸大量資料並不是一個好的做法。為達此目的,我們的方法將使用名為 Claim-Check 的模式,該模式將完全與我們的提案相同,而不是透過訊息佇列傳送檔案,我們將傳送此檔案的參考。我們會將讀取檔案委派給負責處理該檔案的應用程式。

本教學課程將介紹這些元件:OCI 物件儲存、事件服務、函數及串流。

在此鏈結結結尾,我們將讓應用程式使用串流佇列,不過,我們將不會討論如何處理檔案。

img.png

目標

必要條件

工作 1:建立 OCI 串流處理執行處理

OCI Streaming 是像受管理串流處理的 Kafka。我們可以使用 Kafka API 和市場上常見的 SDK 開發應用程式。在這項任務中,我們將建立 OCI Streaming 的執行處理,並將其設定為在兩個應用程式中執行,以發布和使用大量資料。

  1. 登入 OCI 主控台,按一下分析與 AI串流

  2. 選取區間,然後按一下建立串流

    建立 -stream.png

  3. 輸入串流執行處理的串流名稱,並使用預設值保留其他參數。按一下建立以起始執行處理並等待作用中狀態。

    save-create-stream.png

    注意:

    • 在串流建立處理作業中,我們可以選取自動建立預設串流集區,因此會自動建立預設集區。

    • 您可以在專用子網路中建立串流執行處理。在此情況下,請注意任務 4 中的功能,它必須位於相同的專用子網路上,或位於可存取專用子網路串流實例的子網路上。檢查您的 VCN、子網路、安全清單、服務閘道或其他安全元件。請確定您的函數可以存取 OCI Streaming 執行處理。

  4. 按一下 DefaultPool 連結。

    default-pool-option.png

  5. 按一下 Kafka 連線設定值並檢視連線設定值。請記下下一個任務中所需的資訊。

    串流 - 連線 -settings.png

    kafka - conn.png

作業 2:建立 OCI 物件儲存桶

我們必須建立儲存桶。儲存桶是儲存物件的邏輯容器,因此用於此示範的所有檔案都將儲存在此儲存桶中。

  1. 開啟 OCI 主控台,然後瀏覽至儲存儲存桶。在儲存桶區段中,選取區間,區間將會與在任務 1 中建立的 OCI 串流執行處理相同。

    選取 -compartment.png

  2. 按一下建立分組,然後輸入分組名稱。使用預設值保留其他參數,然後按一下建立

    建立 -bucket.png

    我們可以看到建立的儲存桶。

    儲存桶 -dataflow.png

    注意: 請複查儲存桶的 OCI IAM 原則。如果您要在示範應用程式中使用這些儲存桶,則必須設定原則。如需詳細資訊,請參閱物件儲存簡介OCI IAM 原則

作業 3:啟用 OCI 事件服務的 OCI 物件儲存的儲存桶

我們必須啟用儲存桶才能發出事件。因此,按一下您的儲存桶詳細資訊並搜尋允許物件事件編輯連結,然後加以啟用。

img_8.png

作業 4:建立 OCI 函數

若要執行下列作業,請從此處下載程式碼:OCI_Streaming_Claim_Check.zip

工作 5:設定 OCI 事件

讓我們設定事件規則以觸發您的函數,以取得儲存桶資訊並將其傳送至 OCI 串流處理。

  1. 為規則選取相同的區間,然後按一下建立規則

    img_10.png

  2. 請輸入下列資訊。

    1. 規則條件區段中。

      • 條件:Event Type
      • 服務名稱:Object Storage
      • 事件類型:Object-Create, Object-Delete, Object-Update
    2. 動作區段中。

      • 動作類型:Functions
      • 函數區間:<your function compartment name>
      • 函數應用程式:<your function app, in this example ocistreaming-app>
      • 函數:fn_stream

    img_9.png

工作 6:測試您的事件迴路

注意:若為專用網路,必須在連線至 OCI 串流之相同專用子網路的堡壘主機中執行測試代碼。

OCI_Streaming_Claim_Check.zip 原始程式碼套裝程式中,我們可以找到名為 monitoring 的資料夾和名為 consume.py 的檔案。我們可以使用此程式碼來監督和測試解決方案是否正常運作。

我們需要設定程式碼。

img_11.png

設定串流參數之後,您可以執行程式碼並驗證迴路,例如儲存桶、事件、函數和串流。

img_12.png

認可

其他學習資源

瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center