-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsimple-ecs-run-task.jsonnet
110 lines (106 loc) · 2.6 KB
/
simple-ecs-run-task.jsonnet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
local buildDefinition(command) = {
StartAt: 'RunTask',
States: {
RunTask: {
End: true,
Parameters: {
Cluster: 'fubura',
EnableExecuteCommand: true,
LaunchType: 'FARGATE',
NetworkConfiguration: {
AwsvpcConfiguration: {
SecurityGroups: [
'sg-00000000000000000',
],
Subnets: [
'subnet-00000000000000000',
'subnet-11111111111111111',
'subnet-22222222222222222',
],
},
},
Overrides: {
ContainerOverrides: [
{
Name: 'app',
Command: command,
},
],
Cpu: null,
Memory: null,
},
PropagateTags: 'TASK_DEFINITION',
TaskDefinition: 'arn:aws:ecs:us-west-2:123456789012:task-definition/fubura-batch',
},
Resource: 'arn:aws:states:::ecs:runTask.sync',
Retry: [
{
BackoffRate: 3,
ErrorEquals: [
'ECS.AmazonECSException',
],
IntervalSeconds: 5,
MaxAttempts: 4,
},
],
Type: 'Task',
},
Fail: {
Type: 'Fail',
},
},
};
local buildState(name, definition) = {
name: name,
definition: definition,
roleArn: 'arn:aws:iam::123456789012:role/fubura_sfn',
type: 'STANDARD',
loggingConfiguration: {
level: 'ALL',
includeExecutionData: true,
destinations: [
{
cloudWatchLogsLogGroup: {
logGroupArn: 'arn:aws:logs:us-west-2:123456789012:log-group:fubura_batch',
},
},
],
},
tags: [
{
key: 'Name',
value: 'fubura-batch',
},
],
};
local buildSchedule(name, schedule, scheduleEnabled) = {
groupName: 'fubura-group',
name: name,
state: if scheduleEnabled then 'ENABLED' else 'DISABLED',
scheduleExpression: schedule,
scheduleExpressionTimezone: 'Asia/Tokyo',
flexibleTimeWindow: {
mode: 'OFF',
},
target: {
arn: 'arn:aws:states:us-west-2:123456789012:stateMachine:fubura-example',
roleArn: 'arn:aws:iam::123456789012:role/fubura_batch',
deadLetterConfig: {
arn: 'arn:aws:sqs:us-west-2:123456789012:fubura_batch_dlq',
},
input: '{}',
retryPolicy: {
maximumEventAgeInSeconds: 86400,
maximumRetryAttempts: 0,
},
},
};
local batch(name, definition, schedule, scheduleEnabled=true) = {
state: buildState(name, definition),
schedule: buildSchedule(name, schedule, scheduleEnabled),
};
[
batch('some-task', buildDefinition(
command=['bundle', 'exec', 'rails', 'routes']
), 'rate(1 hours)'),
]