使用 Lithops 框架运行作业
光刻是一个开放式源代码框架,旨在大规模扩展 Python 应用程序。 Lithops 提供了对 IBM Cloud® Code Engine 体验的简单推送,以便您可以专注于 Python 代码,而 Lithops 则专注于大规模部署代码,同时监视执行,获取结果等。 通过使用 Lithops API,Ithops 支持本机 Python 与 Code Engine 集成。 有关 Lithops 的更多信息,请参阅 Lithops 快速入门指南。
使用 Lithops 框架运行第一个流
必须先安装 Lithops 并设置存储后端,然后才能运行引用 Lithops 框架的作业。
准备工作
- 安装 Code Engine CLI。
- 创建并使用 Code Engine 项目。
- 查找并设置
kubeconfig环境变量。
安装光刻胶
-
安装 Lithops。
-
创建 Lithops 配置文件。
-
安装 Docker(社区版本)V。
-
登录到 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 项目页面上找到更多示例和用例以及提问。