Lithops フレームワークでのジョブの実行

Lithops は、Python アプリケーションを大規模に拡大するために設計されたオープンソース・フレームワークです。 Lithops を使用すると、IBM Cloud® Code Engine での作業がさらに楽になります。Lithops はコードのデプロイを行う役割を担い、実行のモニター、結果の取得などを行いながら巨大なスケールのデプロイメントを扱うことができますので、お客様は Python コードの開発に集中することができます。 Lithops では、Lithops API を使用することによって、Code Engine とのネイティブ Python 統合が可能になります。 Lithopsの詳細については、 Lithopsクイックスタートガイドを参照してください。

Lithops フレームワークを使用した最初のフローの実行

Lithops フレームワークを参照するジョブを実行するには、その前にまず Lithops をインストールしてストレージ・バックエンドをセットアップする必要があります。

開始前に

Lithops のインストール

  1. をインストールします。

  2. filename 構成ファイルを作成します。

  3. Docker(Community Edition)バージョンをインストールします。

  4. Docker にログインします。

    docker login
    

Lithops のストレージ・バックエンドのセットアップ

サポートされるストレージ・バックエンド (IBM Cloud Object Storage など) を選択します。

IBM Cloud Object Storage をセットアップするには、以下のようにします。

  1. IBM Cloud Object Storage アカウントを作成します。
  2. 使用するリージョンにバケットを作成します。
  3. サイド・ナビゲーションで**「エンドポイント」**をクリックし、API エンドポイントを見つけます。 バケットを作成したリージョンのパブリック・エンドポイントとプライベート・エンドポイントを両方ともコピーする必要があります。
  4. IBM Cloud Object Storageアカウントにアクセスするための資格情報を作成します。 オプションを 1 つ選択してください

Lithops のオプション 1 (API キー)

  1. IBM Cloud Object Storage のナビゲーションで**「サービス資格情報」**をクリックします。

  2. **「新規資格情報 +」**をクリックして名前を入力し、役割を選択します。

  3. **「追加」**をクリックして、サービス資格情報を生成します。

  4. **「資格情報の表示」**をクリックし、apikey の値をコピーします。

  5. 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 資格情報)

  1. IBM Cloud Object Storage のナビゲーションで**「サービス資格情報」**をクリックします。

  2. **「新規資格情報 +」**をクリックして名前を入力し、役割を選択します。

  3. **「詳細オプション」**をクリックし、オプションInclude HMAC Credentialを有効にします。

  4. **「追加」**をクリックして、サービス資格情報を生成します。

  5. 資格情報の表示をクリックし、access_key_idsecret_access_keyの値をコピーします。

  6. 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 キー)

  1. IAM API キーがない場合、IBM IAM ダッシュボードにナビゲートします。

  2. **「IBM Cloud API キーの作成」をクリックします。 API キーの名前と説明 (オプション) を入力して「作成」**をクリックします。

  3. 生成された IAM API キーをコピーします (このキーを表示できるのは作成時のみなので、必ずコピーしてください)。

  4. 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プロジェクトのページでは、より多くの例や使用例、質問などを見つけることができる。