本页面介绍如何执行 Cloud Run 作业。执行作业会创建一个作业执行,其中的所有任务都必须成功完成,该作业执行才能成功。作业执行将日志写入 Cloud Logging,并将监控数据发送到 Cloud Monitoring。
除了这些日志记录功能之外,您还可以使用执行详情窗格查看作业最近 1,000 次执行的作业执行详情,以及过去 7 天内发生的任何执行。较早的执行详情会被移除,并且不再显示在执行详情窗格中。但是,较早的执行的日志和监控数据仍然在 Cloud Logging 和 Cloud Monitoring 中提供,具体取决于这些产品的保留政策。
执行作业
您可以使用 Google Cloud 控制台或 Google Cloud CLI 执行作业。
控制台
如需执行作业,请执行以下操作:
找到相关作业。
点击该作业以显示作业详情页面。
点击执行。
命令行
如需执行现有作业,请运行以下命令:
gcloud run jobs execute JOB_NAME
如果您希望命令等待执行完成,请使用以下命令
gcloud run jobs execute JOB_NAME --wait
将 JOB_NAME
替换为作业的名称。
客户端库
如需通过代码执行现有作业,请使用以下客户端库:
REST API
如需执行现有作业,请向 jobs.run
API 方法发送 POST
HTTP 请求
例如,使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run
替换:
- 将 ACCESS_TOKEN 替换为具有执行作业的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用
gcloud auth print-access-token
检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。 - 将 JOB-NAME 替换为作业的名称。
- 将 REGION 替换为作业的 Google Cloud 区域。
- 将 PROJECT-ID 替换为 Google Cloud 项目 ID。
在创建作业后立即执行作业
如果使用命令行,您可以在创建作业后立即执行作业:
gcloud run jobs create JOB_NAME --execute-now
替换特定执行的作业配置
您可以在执行作业时替换为作业配置的参数、环境变量、任务数量和任务超时,方法是在开始新作业执行时设置这些参数。您指定的参数只会影响此执行,因为底层作业定义保持不变。您需要 run.jobs.runWithOverrides
权限才能使用此功能。Cloud Run Admin 和 Cloud Run Developer 角色具有此权限。
一些常见使用场景包括:
- 例如,您通过代码以编程方式执行作业,并且想要替换参数和/或环境变量,以告诉作业本次执行的输入数据所在的位置。
- 在您的作业中,每个任务只能处理一条输入数据。您希望根据要处理的输入数来替换任务的数量。
- 作业的运行时间因不同执行而异。您希望根据作业的预期运行时间替换任务超时。
替换执行的作业配置:
控制台
找到相关作业。
点击该作业以显示作业详情页面。
点击修改按钮前面的展开箭头,然后点击以替换项执行作业以显示使用替换执行作业表单。
根据需要更改此执行的参数、环境变量、任务数量和/或任务超时配置,然后点击执行。
命令行
使用以下命令:
gcloud run jobs execute JOB_NAME \ --args ARGS \ --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \ --tasks TASKS \ --task-timeout TIMEOUT
替换
客户端库
如需通过代码执行现有作业,请替换作业配置:
REST API
如需替换现有作业的作业配置,请向 Cloud Run Admin API jobs
端点发送 POST
HTTP 请求
例如,使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASK-COUNT, "timeout": "TIMEOUT" }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run
您需要在其中:
- 将 ACCESS_TOKEN 替换为具有执行作业替换的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用
gcloud auth print-access-token
检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。 - 将 JOB_NAME 替换为作业的名称。
- 将 ARGS 替换为作业参数。
- 将 KEY 和 VALUE 对替换为环境变量。
- 将 TASKS 替换为任务数量。
- 将 TIMEOUT 替换为任务超时。
- 将 REGION 替换为作业的 Google Cloud 区域。
- 将 PROJECT-ID 替换为 Google Cloud 项目 ID。
取消作业执行
如需停止当前正在运行的 Cloud Run 作业执行,请使用取消功能。取消作业执行会停止当前的作业执行。已取消的执行处于已取消状态。您仍然可以查看执行,包括其配置数据、日志和监控数据。
取消作业执行不会撤消执行作业期间的任何 Cloud Run 作业使用费用。
如需取消执行,请执行以下操作:
控制台
点击该作业执行以显示执行详情页面。
点击取消。
命令行
使用以下命令:
gcloud run jobs executions cancel EXECUTION_NAME
将 EXECUTION_NAME
替换为执行的名称。
此命令要求确认,因此请输入 y
进行确认以响应提示。
客户端库
如需通过代码取消作业执行,请使用以下客户端库:
REST API
如需取消作业执行,请向 Cloud Run Admin API jobs
端点发送 POST
HTTP 请求
例如,使用 curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME/executions/EXECUTION-NAME:cancel
您需要在其中:
- 将 ACCESS_TOKEN 替换为具有用于取消作业执行的 IAM 权限的账号的有效访问令牌。例如,如果您已登录 gcloud,则可以使用
gcloud auth print-access-token
检索访问令牌。在 Cloud Run 容器实例中,您可以使用容器实例元数据服务器检索访问令牌。 - 将 JOB_NAME 替换为作业的名称。
- 将 EXECUTION-NAME 替换为作业执行的名称。
- 将 REGION 替换为作业的 Google Cloud 区域。
- 将 PROJECT-ID 替换为 Google Cloud 项目 ID。
删除作业执行
即使作业执行当前正在进行,您也可以将其删除。如果您删除执行,则会阻止执行继续。如需了解详情,请参阅删除作业执行。
后续步骤
执行作业后,您可以执行以下操作: