stdlib/aws: implemented ecs run-task script to invoke containers on ecs

Signed-off-by: Sam Alba <sam.alba@gmail.com>
This commit is contained in:
Sam Alba 2021-04-09 15:59:08 -07:00
parent 80b8e014b0
commit bd49171455

View File

@ -0,0 +1,64 @@
package ecs
import (
"dagger.io/aws"
)
// RunTask implement ecs run-task
#RunTask: {
// AWS Config
config: aws.#Config
// ECS cluster name
cluster: string
// Arn of the task to run
taskArn: string
// Environment variables of the task
containerEnvironment: [string]: string
// Container name
containerName: string
// Container command to give
containerCommand: [...string]
// Task role ARN
roleArn: string | *""
containerOverrides: {
"containerOverrides": [{
name: containerName
if len(containerCommand) > 0 {
"command": containerCommand
}
if len(containerEnvironment) > 0 {
"environment": [ for k, v in containerEnvironment {"name": k, "value": v}]
}
}]
if roleArn != "" {
taskRoleArn: roleArn
}
}
aws.#Script & {
"config": config
export: "/out"
files: {
"/inputs/cluster": cluster
"/inputs/task_arn": taskArn
"/inputs/container_overrides": containerOverrides
}
code: #"""
cat /inputs/container_overrides | jq
aws ecs run-task \
--cluster "$(cat /inputs/cluster)" \
--task-definition "$(cat /inputs/task_arn)" \
--overrides "$(cat /inputs/container_overrides)" \
> /out
"""#
}
}