使用 Lithops 架構執行工作
Lithops 是一種開放程式碼架構,專門設計用來大規模擴充 Python 應用程式。 Litops 提供 IBM Cloud® Code Engine 體驗的簡單推送,因此您可以聚焦於 Python 程式碼,而 Lithops 則聚焦於大規模部署程式碼,同時監視執行、取得結果等等。 Lithops 使用 Lithops API 來啟用原生 Python 與 Code Engine 的整合。 如需 Lithops 的相關資訊,請參閱 Lithops 快速入門手冊。
使用 Lithops 架構執行第一個流程
您必須先安裝 Lithops 並設定儲存體後端,然後才能執行參照 Lithops 架構的工作。
開始之前
- 安裝 Code Engine CLI。
- 建立並使用 Code Engine 專案。
- 尋找並設定
kubeconfig環境變數。
安裝 Lithops
-
安裝 Lithops。
-
建立 Lithops 配置檔。
-
安裝 Docker(社群版本)版。
-
登入 Docker。
docker login
設定 Lithops 的儲存體後端
選取 支援的儲存體後端; 例如,IBM Cloud Object Storage。
若要設定 IBM Cloud Object Storage、
- 建立 IBM Cloud Object Storage 帳戶。
- 在您要使用的地區中建立儲存區。
- 在側邊導覽中,按一下 端點 以尋找 API 端點。 您必須複製已建立儲存區之地區的公用及專用端點。
- 建立認證以存取 IBM Cloud Object Storage 帳戶。 選擇一個選項
Lithops 的選項 1 (API 金鑰)
-
從 IBM Cloud Object Storage 導覽中,按一下 服務認證。
-
按一下 新建認證 +,並提供名稱及選取角色。
-
按一下新增,以產生服務認證。
-
按一下檢視憑證,然後複製
apikey值。 -
編輯
lithops配置檔,並新增下列金鑰。lithops: storage_backend: ibm_cos ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT> api_key : <API_KEY>
Lithops 的選項 2 (IBM Cloud Object Storage HMAC 認證)
-
從 IBM Cloud Object Storage 導覽中,按一下 服務認證。
-
按一下 新建認證 +,並提供名稱及選取角色。
-
按一下 進階選項 並啟用選項
Include HMAC Credential。 -
按一下新增,以產生服務認證。
-
按一下 檢視認證,並複製
access_key_id和secret_access_key值。 -
編輯
lithops配置檔,並新增下列索引鍵:lithops: storage_backend: ibm_cos ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT> access_key : <ACCESS_KEY_ID> secret_key : <SECRET_KEY_ID>
Lithops 的選項 3 (IBM IAM API 金鑰)
-
如果您沒有 IAM API 金鑰,請導覽至 IBM IAM 儀表板。
-
按一下建立 IBM Cloud API 金鑰。 輸入 API 金鑰的名稱和可選描述,然後按一下建立。
-
複製產生的 IAM API 金鑰 (您只能在建立金鑰時看到該金鑰,因此請務必複製它)。
-
編輯
lithops配置檔,並新增下列索引鍵:lithops: storage_backend: ibm_cos ibm: iam_api_key: <IAM_API_KEY> ibm_cos: endpoint : <REGION_ENDPOINT> private_endpoint : <PRIVATE_REGION_ENDPOINT>
使用 Lithops 部署您的第一個 Code Engine 工作
執行下列 hello world 範例:
import lithops
iterdata = [1,2,3,4,5]
def my_map_function(data):
return data + 1
if __name__ == '__main__':
pw = lithops.function_executor(type = "serverless", backend='code_engine')
futures = pw.map(my_map_function, iterdata)
print (pw.get_result())
pw.clean()
Lithops 的後續步驟
您可以在 Lithops 專案頁面上找到更多範例和使用案例,以及詢問問題。