在 Google Cloud Run 中,Cloud Run Jobs 允许你运行一次性任务。下面是一个简单的 Cloud Run Job 的 YAML 文件示例,它可以帮助你定义一个 Job。这个文件将定义一个 Job 运行时的镜像、任务个数和执行参数等。
Cloud Run Job YAML 示例
yaml
复制代码
apiVersion: run.googleapis.com/v1
kind: Job
metadata:
name: my-cloud-run-job # 任务名称
spec:
template:
spec:
containers:
- image: gcr.io/my-project/my-image # 你的容器镜像
args: # 传递给容器的参数
- "arg1"
- "arg2"
timeoutSeconds: 3600 # 超时时间(秒)
resources:
limits:
memory: "512Mi" # 内存限制
cpu: "1" # CPU 限制
parallelism: 1 # 并行任务数量
taskCount: 1 # 任务数量
maxRetries: 3 # 重试次数
解释
apiVersion: run.googleapis.com/v1 表示使用 Cloud Run 的 Jobs API。
kind: 定义资源类型为 Job。
metadata.name: Job 的名字,Cloud Run 会基于此名称来创建 Job 资源。
spec.template.spec.containers.image: 这是运行 Job 的容器镜像的路径,例如存储在 Google Container Registry 或其他 Docker 注册表中的镜像。
args: 容器启动时传递的参数。
timeoutSeconds: 每个任务的超时时间(秒),超过这个时间会被终止。
resources: 为任务分配的资源,限制 CPU 和内存使用。
parallelism: 同时运行的并行任务数量。比如你有多个任务需要处理时,可以同时启动多个任务。
taskCount: 总共需要执行的任务数量。这个值表示 Cloud Run 将执行多少个任务。
maxRetries: 定义每个任务在失败时的重试次数。
使用方法
编写 YAML 文件:将上述 YAML 内容保存为 job.yaml。
部署 Job: 使用 gcloud CLI 部署 Job:
bash
复制代码
gcloud beta run jobs create my-cloud-run-job --region REGION --file job.yaml
执行 Job: 一旦 Job 部署成功,可以通过以下命令执行:
bash
复制代码
gcloud beta run jobs execute my-cloud-run-job --region REGION
注意事项
确保你的 Docker 镜像已推送到 Google Container Registry 或其他兼容的 Docker 注册表。
调整 resources 来匹配任务的实际资源需求。
并行任务 (parallelism) 和任务总数 (taskCount) 的配置会影响资源利用和运行效率。