从公共注册表中的映像创建作业

创建作业时,可以指定每次运行作业时使用的工作负载配置信息。 您可以通过控制台或命令行界面(CLI)创建任务。

使用控制台创建作业

使用 icr.io/codeengine/helloworld 映像创建 Code Engine 作业。 此作业打印 Hello from helloworld! I'm a task job!

  1. 打开 Code Engine
  2. 选择“开始创建”。
  3. 从可用项目列表中选择一个项目。 您还可以 创建新的。 请注意,您必须具有所选项目才能创建作业。
  4. 选择职位
  5. 输入作业名称;例如,myjob
  6. 指定作业的容器映像,例如 icr.io/codeengine/helloworld。 如果您有自己的源代码要转换为作业的容器映像,请参阅 构建容器映像。 有关用于此示例的代码的更多信息,请参阅 helloworld
  7. 修改环境变量或运行时设置的任何缺省值。 有关这些选项的更多信息,请参阅 用于创建和运行作业的选项
  8. 单击创建
  9. 在作业页面中,当作业处于 ready 状态时,单击 提交作业 以根据当前配置提交作业。
  10. 在“提交作业”窗格中,接受所有缺省值,然后再次单击 提交作业 以运行作业。

在“提交作业”窗格中,您可以查看并选择更改默认配置值,如实例、CPU、内存、作业重试次数和作业超时。 您可以为要运行的并行作业实例指定数组大小数组索引。 对于 数组大小,提供要为此作业并行运行的实例数。 对于数组索引,请提供一个以逗号分隔的自定义索引集列表。 例如,要使用自定义的 5 索引集运行此作业,请指定 3,12-14,25。 您还可以 指定作业数组大小的定制值,这将更新自动注入的 JOB_ARRAY_SIZE 环境变量的值。 提交此作业后,系统会在“作业详细信息”页面上显示作业实例的状态。 如果在任务详细信息页面 Configuration 部分的“提交任务”窗格中指定阵列大小而不是阵列索引,则此信息将作为阵列索引提供。

您可以在“作业状态”页面上找到有关作业运行的详细信息。

使用命令行界面(CLI)创建作业

要使用 CLI 创建作业配置,请使用 job create 命令。 此命令需要名称和映像,并且还允许其他可选参数。 有关选项的完整列表,请参阅 ibmcloud ce job create 命令。

准备工作

以下 job create 命令创建名为 myjob 的作业配置并使用容器映像 icr.io/codeengine/firstjob

ibmcloud ce job create --name myjob  --image icr.io/codeengine/firstjob

示例输出

Creating job 'myjob'...
OK

下表概述了此示例中与 job create 命令配合使用的选项。 有关该命令及其选项的更多信息,请参阅 ibmcloud ce job create 命令。

命令选项
选项 描述
--image 用于运行作业的映像的名称。 此值是必需的。 格式为 REGISTRY/NAMESPACE/REPOSITORY:TAG,其中 REGISTRYTAG 为可选内容。 如果未指定 TAG,则默认值为 latest。 对于 Docker Hub中的映像,可以使用 NAMESPACE/REPOSITORY 指定映像,因为 REGISTRY 的缺省值为 docker.io。 对于其他注册表,请使用 REGISTRY/NAMESPACE/REPOSITORYREGISTRY/NAMESPACE/REPOSITORY:TAG
--name 作业的名称。 请使用项目中唯一的名称。 此值是必需的。
-名称必须以小写字母数字字符开头和结尾。
-名称必须不超过 63 个字符,并且可以包含小写字母,数字和连字符 (-)。

后续步骤

  • 创建作业后,提交作业以运行该作业。 请参阅 运行作业。 您可以多次运行作业。

  • 运行作业 后,要查看作业和作业运行的详细信息,请参阅 访问作业详细信息

  • 既然已创建作业,请考虑使作业由事件驱动。 通过使用事件预订,您可以通过 定期调度 来触发作业,或者将作业设置为对诸如 文件上载 之类的事件作出反应。

  • 您可以通过以下 任何 方式 更新作业 及其引用的代码,而与创建或先前更新作业的方式无关。

    • 如果您具有容器映像,那么根据 Open Container Initiative(OCI)标准,您只需提供对该映像的引用,这将在创建 (或更新) 作业时指向容器注册表的位置。 您可以从 公共注册表专用注册表 中的映像创建 (或更新) 作业,然后从作业运行中访问引用的映像。

      如果使用 job create 命令创建了作业,并且指定了 --build-source 选项以从本地或存储库源构建容器映像,并且要将作业更改为指向其他容器映像,那么必须首先从作业中除去该构建的关联。 例如,运行 ibmcloud ce job update -n JOB_NAME --build-clear。 从作业中除去构建的关联后,可以更新作业以引用其他映像。

    • 如果从位于 Git 存储库中的源代码开始,那么可以选择让 Code Engine 负责从源构建映像,并使用 单个 操作创建 (或更新) 作业。 在此场景中,Code Engine 将映像上载到 IBM Cloud® Container Registry。 要了解更多信息,请参阅 从存储库源代码创建作业。 如果想要对映像的构建进行更多控制,那么可以选择在创建 (或更新) 作业并运行作业之前使用 Code Engine 来 构建映像

    • 如果是从本地工作站上的源代码开始,那么可以选择让 Code Engine 负责从源构建映像并使用 单个 CLI 命令创建作业。 在此场景中,Code Engine 将映像上载到 IBM Cloud® Container Registry。 要了解更多信息,请参阅 使用 CLI 从本地源代码创建作业。 如果想要对映像的构建进行更多控制,那么可以选择在创建 (或更新) 作业并运行作业之前使用 Code Engine 来 构建映像

    例如,您可以选择让 Code Engine 在为作业开发源时处理本地源的构建。 然后,在映像成熟后,可以更新作业以引用所需的特定映像。 您可以根据需要重复此过程。

    运行更新后的作业时,引用的容器映像的最新版本将用于作业运行,除非为该映像指定了标记。 如果为映像指定了标记,那么标记的映像将用于作业运行。

要查找更多代码示例吗? 请查看“IBM Cloud Code Engine”GitHub 代码库中的示例