aws.infra.ec2_cloudfront_s3_route53_sqs ​
Create EC2, check running, create CloudFront and S3 in parallel, then Route 53 record and send SQS message.
Create EC2 → CloudFront + S3 → Route 53 → SQS in sequence.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Dag |
| Library | Business |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
ami_id | string | Yes | — | — |
instance_type | string | Yes | — | — |
subnet_id | string | Yes | — | — |
security_group_ids | json | Yes | — | — |
connection_uuid | uuid | Yes | — | — |
key_name | string | No | — | — |
tags | json | No | — | — |
bucket_name | string | No | — | — |
region | string | No | — | — |
block_public_access | boolean | No | — | — |
cloudfront_aliases | json | No | — | — |
cloudfront_comment | string | No | — | — |
origin_domain | string | No | — | — |
hosted_zone_id | string | No | — | — |
zone_ref | string | No | — | — |
record_name | string | No | — | — |
record_type | string | No | — | — |
record_value | string | No | — | — |
ttl | integer | No | — | — |
workflow_run_id | string | No | — | — |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
ami_id | string | No | — | — |
instance_type | string | No | — | — |
subnet_id | string | No | — | — |
security_group_ids | json | No | — | — |
connection_uuid | uuid | No | — | — |
key_name | string | No | — | — |
tags | json | No | — | — |
bucket_name | string | No | — | — |
region | string | No | — | — |
block_public_access | boolean | No | — | — |
cloudfront_aliases | json | No | — | — |
cloudfront_comment | string | No | — | — |
origin_domain | string | No | — | — |
hosted_zone_id | string | No | — | — |
zone_ref | string | No | — | — |
record_name | string | No | — | — |
record_type | string | No | — | — |
record_value | string | No | — | — |
ttl | integer | No | — | — |
workflow_run_id | string | No | — | — |
create_ec2 | json | No | — | — |
check_running | json | No | — | — |
create_cloudfront | json | No | — | — |
create_s3 | json | No | — | — |
create_route53 | json | No | — | — |
send_sqs | json | No | — | — |
failure_reason | string | No | — | — |
failure_type | string | No | — | — |
failed_action | string | No | — | — |
failed_at_state | string | No | — | — |
failed_step | string | No | — | — |
failed_layer | string | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
failed_at | string | No | — | — |
DAG Layers ​
| # | Layer | Steps | Compensation |
|---|---|---|---|
| 1 | create_ec2 | aws.ec2.create_instance | — |
| 2 | check_running | aws.ec2.check_running | — |
| 3 | cloudfront_s3 | aws.cloudfront.create_distribution, aws.s3.create_bucket | — |
| 4 | create_route53 | aws.route53.create_record | — |
| 5 | send_sqs | pistol.test.send_sqs_message | — |
Execution Flow ​
Sub-workflows ​
| Sub-workflow | Step name |
|---|---|
aws.ec2.create_instance | create_ec2 |
aws.ec2.check_running | check_running |
aws.cloudfront.create_distribution | create_cloudfront |
aws.s3.create_bucket | create_s3 |
aws.route53.create_record | create_route53 |
pistol.test.send_sqs_message | send_sqs |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "aws.infra.ec2_cloudfront_s3_route53_sqs",
"initial_data": {
"ami_id": "value",
"instance_type": "value",
"subnet_id": "value",
"security_group_ids": "value"
}
}