yaml
type: "io.kestra.plugin.ee.gcp.runner.batch"
Examples
yaml
id: new_shell
namespace: company.team
variables:
projectId: "myproject"
region: "europe-west2"
tasks:
- id: shell
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.plugin.ee.gcp.runner.Batch
projectId: "{{vars.projectId}}"
region: "{{ vars.region} }"
serviceAccount: "{{ secret('GOOGLE_SA') }}"
commands:
- echo "Hello World"
yaml
id: new_shell_with_file
namespace: company.team
inputs:
- id: file
type: FILE
variables:
projectId: "myProject"
region: "europe-west2"
bucket: "myBucket"
tasks:
- id: shell
type: io.kestra.plugin.scripts.shell.Commands
inputFiles:
data.txt: "{{ inputs.file }}"
outputFiles:
- out.txt
containerImage: centos
taskRunner:
type: io.kestra.plugin.ee.gcp.runner.Batch
projectId: "{{ vars.projectId }}"
region: "{{ vars.region }}"
bucket: "{{ vars.bucket }}"
serviceAccount: "{{ secret('GOOGLE_SA') }}"
commands:
- cp {{workingDir}}/data.txt {{workingDir}}/out.txt
yaml
id: gcp_batch_runner
namespace: company.team
tasks:
- id: scrape_environment_info
type: io.kestra.plugin.scripts.python.Commands
containerImage: ghcr.io/kestra-io/pydata:latest
taskRunner:
type: io.kestra.plugin.ee.gcp.runner.Batch
projectId: "{{ secret('GCP_PROJECT_ID') }}"
region: "europe-west9"
bucket: "{{ secret('GCS_BUCKET')}}"
serviceAccount: "{{ secret('GOOGLE_SA') }}"
commands:
- python {{ workingDir }}/main.py
namespaceFiles:
enabled: true
outputFiles:
- environment_info.json
inputFiles:
main.py: |
import platform
import socket
import sys
import json
from kestra import Kestra
print("Hello from GCP Batch and kestra!")
def print_environment_info():
print(f"Host's network name: {platform.node()}")
print(f"Python version: {platform.python_version()}")
print(f"Platform information (instance type): {platform.platform()}")
print(f"OS/Arch: {sys.platform}/{platform.machine()}")
env_info = {
"host": platform.node(),
"platform": platform.platform(),
"OS": sys.platform,
"python_version": platform.python_version(),
}
Kestra.outputs(env_info)
filename = '{{ workingDir }}/environment_info.json'
with open(filename, 'w') as json_file:
json.dump(env_info, json_file, indent=4)
if __name__ == '__main__':
print_environment_info()
Properties
region *Requiredstring
bucket string
completionCheckInterval string
Default
PT5S
Format
duration
computeResource Non-dynamicBatch-ComputeResource
delete booleanstring
Default
true
entryPoint array
SubType string
machineType string
Default
e2-medium
maxCreateJobRetryCount integerstring
Default
2
maxRetryCount Non-dynamicinteger
Minimum
>= 0
Maximum
<= 10
projectId string
reservation string
resume booleanstring
Default
true
scopes array
SubType string
Default
["https://www.googleapis.com/auth/cloud-platform"]
serviceAccount string
version Non-dynamicstring
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitForLogInterval string
Default
PT5S
Format
duration
waitUntilCompletion string
Default
PT1H
Format
duration
Definitions
io.kestra.plugin.ee.gcp.runner.Batch-LifecyclePolicyAction
exitCodes array
SubType integer
io.kestra.plugin.ee.gcp.runner.Batch-LifecyclePolicy
action string
Possible Values
ACTION_UNSPECIFIED
RETRY_TASK
FAIL_TASK
UNRECOGNIZED