yaml
type: "io.kestra.plugin.ee.aws.runner.batch"
Examples
yaml
id: run_container
namespace: company.team
variables:
region: eu-west-2
computeEnvironmentArn: "arn:aws:batch:eu-central-1:123456789012:compute-environment/kestraFargateEnvironment"
tasks:
- id: shell
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.plugin.ee.aws.runner.Batch
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
region: "{{ vars.region }}"
computeEnvironmentArn: "{{ vars.computeEnvironmentArn }}"
commands:
- echo "Hello World"
yaml
id: container_with_input_files
namespace: company.team
inputs:
- id: file
type: FILE
variables:
region: eu-west-2
computeEnvironmentArn: "arn:aws:batch:eu-central-1:123456789012:compute-environment/kestraFargateEnvironment"
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.aws.runner.Batch
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
region: "{{ vars.region }}"
bucket: "{{ vars.bucket }}"
computeEnvironmentArn: "{{ vars.computeEnvironmentArn }}"
commands:
- cp {{ workingDir }}/data.txt {{ workingDir }}/out.txt
yaml
id: aws_batch_runner
namespace: company.team
variables:
compute_environment_arn: arn:aws:batch:us-east-1:123456789:compute-environment/kestra
job_queue_arn: arn:aws:batch:us-east-1:123456789:job-queue/kestra
execution_role_arn: arn:aws:iam::123456789:role/ecsTaskExecutionRole
task_role_arn: arn:aws:iam::123456789:role/ecsTaskRole
tasks:
- id: send_data
type: io.kestra.plugin.scripts.python.Script
containerImage: ghcr.io/kestra-io/pydata:latest
taskRunner:
type: io.kestra.plugin.ee.aws.runner.Batch
region: us-east-1
accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
secretKeyId: "{{ secret('AWS_SECRET_KEY_ID') }}"
computeEnvironmentArn: "{{ vars.compute_environment_arn }}"
jobQueueArn: "{{ vars.job_queue_arn}}"
executionRoleArn: "{{ vars.execution_role_arn }}"
taskRoleArn: "{{ vars.task_role_arn }}"
bucket: kestra-us
script: |
import platform
import socket
import sys
print("Hello from AWS 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()}")
try:
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
print(f"Host IP Address: {ip_address}")
except socket.error as e:
print("Unable to obtain IP address.")
if __name__ == '__main__':
print_environment_info()
Properties
computeEnvironmentArn *Requiredstring
region *Requiredstring
accessKeyId string
bucket string
completionCheckInterval string
Default
PT5S
Format
duration
delete booleanstring
Default
true
endpointOverride string
executionRoleArn string
jobQueueArn string
resources Non-dynamicBatch-Resources
Default
{
"request": {
"memory": "2048",
"cpu": "1"
}
}
resume booleanstring
Default
true
secretKeyId string
sessionToken string
stsEndpointOverride string
stsRoleArn string
stsRoleExternalId string
stsRoleSessionDuration string
Default
PT15M
Format
duration
stsRoleSessionName string
taskRoleArn string
version Non-dynamicstring
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitUntilCompletion string
Default
PT1H
Format
duration