Spaces:
Running
Running
| - task_id: 11 | |
| description: Create an S3 bucket named 'data-pipeline' and upload a file to it. | |
| success_criteria: | |
| steps: | |
| - operation: create-bucket | |
| resource: data-pipeline | |
| - operation: put-object | |
| resource: data-pipeline | |
| - task_id: 12 | |
| description: > | |
| Create a DynamoDB table named 'orders' with partition key 'order_id' (S), | |
| then insert an item with order_id '001' and status 'pending'. | |
| success_criteria: | |
| steps: | |
| - operation: create-table | |
| resource: orders | |
| - operation: put-item | |
| resource: orders | |
| - task_id: 13 | |
| description: > | |
| Create an SNS topic named 'alerts', then create an SQS queue named | |
| 'alert-inbox' and subscribe the queue to the topic. | |
| success_criteria: | |
| steps: | |
| - operation: create-topic | |
| resource: alerts | |
| - operation: create-queue | |
| resource: alert-inbox | |
| - operation: subscribe | |
| resource: alerts | |
| - task_id: 14 | |
| description: > | |
| Create an IAM role named 'lambda-exec-role' with an assume-role policy | |
| for Lambda, then attach the AWSLambdaBasicExecutionRole managed policy to it. | |
| success_criteria: | |
| steps: | |
| - operation: create-role | |
| resource: lambda-exec-role | |
| - operation: attach-role-policy | |
| resource: lambda-exec-role | |
| - task_id: 66 | |
| description: > | |
| Create an S3 bucket named 'app-assets', then create an IAM policy named | |
| 'app-assets-read-policy' that grants s3:GetObject access to the bucket. | |
| success_criteria: | |
| steps: | |
| - operation: create-bucket | |
| resource: app-assets | |
| - operation: create-policy | |
| resource: app-assets-read-policy | |
| - task_id: 67 | |
| description: > | |
| Create a DynamoDB table named 'user-sessions' with partition key 'session_id' (S), | |
| then create an S3 bucket named 'session-exports' for exporting table data. | |
| success_criteria: | |
| steps: | |
| - operation: create-table | |
| resource: user-sessions | |
| - operation: create-bucket | |
| resource: session-exports | |
| - task_id: 68 | |
| description: > | |
| Create an IAM role named 'data-processor-role' with an assume-role policy | |
| for Lambda, then create a Lambda function named 'data-processor' using that role | |
| with runtime python3.12 and handler index.handler using --zip-file fileb:///tmp/dummy.zip. | |
| success_criteria: | |
| steps: | |
| - operation: create-role | |
| resource: data-processor-role | |
| - operation: create-function | |
| resource: data-processor | |
| - task_id: 69 | |
| description: > | |
| Create an SQS queue named 'order-events', then create an SNS topic named | |
| 'order-notifications' and subscribe the queue to the topic using the sqs protocol. | |
| success_criteria: | |
| steps: | |
| - operation: create-queue | |
| resource: order-events | |
| - operation: create-topic | |
| resource: order-notifications | |
| - operation: subscribe | |
| resource: order-notifications | |
| - task_id: 70 | |
| description: > | |
| Create a secret in Secrets Manager named 'db-credentials' with a JSON value | |
| containing username and password fields, then create an IAM role named | |
| 'secret-reader-role' with an assume-role policy for Lambda. | |
| success_criteria: | |
| steps: | |
| - operation: create-secret | |
| resource: db-credentials | |
| - operation: create-role | |
| resource: secret-reader-role | |
| - task_id: 71 | |
| description: > | |
| Create an SSM parameter named '/app/config/db-host' with type String and | |
| value 'db.internal.local', then create a Lambda function named 'config-loader' | |
| with runtime python3.12 and handler index.handler using --zip-file fileb:///tmp/dummy.zip | |
| and role arn:aws:iam::000000000000:role/lambda-exec-role. | |
| success_criteria: | |
| steps: | |
| - operation: put-parameter | |
| resource: /app/config/db-host | |
| - operation: create-function | |
| resource: config-loader | |
| - task_id: 72 | |
| description: > | |
| Create a Lambda function named 'scheduled-task' with runtime python3.12, | |
| handler index.handler, role arn:aws:iam::000000000000:role/lambda-exec-role, | |
| and --zip-file fileb:///tmp/dummy.zip. Then create an EventBridge rule named | |
| 'every-five-minutes' with a schedule expression of rate(5 minutes) and add the | |
| Lambda function as a target. | |
| success_criteria: | |
| steps: | |
| - operation: create-function | |
| resource: scheduled-task | |
| - operation: put-rule | |
| resource: every-five-minutes | |
| - operation: put-targets | |
| resource: every-five-minutes | |
| - task_id: 73 | |
| description: > | |
| Create an IAM role named 'ecs-task-role' with an assume-role policy for | |
| ecs-tasks.amazonaws.com, then attach the AmazonS3ReadOnlyAccess managed | |
| policy to it. | |
| success_criteria: | |
| steps: | |
| - operation: create-role | |
| resource: ecs-task-role | |
| - operation: attach-role-policy | |
| resource: ecs-task-role | |
| - task_id: 74 | |
| description: > | |
| Create a secret in Secrets Manager named 'rds-master-password' with a | |
| JSON value containing host, port, username, and password fields. Then create | |
| an RDS DB instance named 'app-database' with engine mysql, db-instance-class | |
| db.t3.micro, and master credentials. | |
| success_criteria: | |
| steps: | |
| - operation: create-secret | |
| resource: rds-master-password | |
| - operation: create-db-instance | |
| resource: app-database | |
| - task_id: 75 | |
| description: > | |
| Create an Application Load Balancer target group named 'web-targets' with | |
| protocol HTTP, port 80, and VPC. Then create a Route 53 hosted zone for | |
| 'app.example.com'. | |
| success_criteria: | |
| steps: | |
| - operation: create-target-group | |
| resource: web-targets | |
| - operation: create-hosted-zone | |
| resource: app.example.com | |
| - task_id: 76 | |
| description: > | |
| Create a Cognito user pool named 'app-users', then create a user pool | |
| client named 'web-app-client' in that user pool. | |
| success_criteria: | |
| steps: | |
| - operation: create-user-pool | |
| resource: app-users | |
| - operation: create-user-pool-client | |
| resource: web-app-client | |
| - task_id: 77 | |
| description: > | |
| Create an EFS file system with a creation token 'app-storage', then create | |
| a security group named 'efs-mount-sg' with a description allowing NFS access | |
| for mounting the file system. | |
| success_criteria: | |
| steps: | |
| - operation: create-file-system | |
| resource: app-storage | |
| - operation: create-security-group | |
| resource: efs-mount-sg | |
| - task_id: 78 | |
| description: > | |
| Create an EBS volume of 20 GiB in availability zone us-east-1a with type gp3, | |
| then tag the volume with Name 'data-volume' using create-tags. | |
| success_criteria: | |
| steps: | |
| - operation: create-volume | |
| resource: data-volume | |
| - operation: create-tags | |
| resource: data-volume | |
| - task_id: 79 | |
| description: > | |
| Create an ElastiCache subnet group named 'cache-subnets' with a description | |
| and subnet IDs, then create an ElastiCache cluster named 'session-cache' with | |
| engine redis, cache-node-type cache.t3.micro, and num-cache-nodes 1. | |
| success_criteria: | |
| steps: | |
| - operation: create-cache-subnet-group | |
| resource: cache-subnets | |
| - operation: create-cache-cluster | |
| resource: session-cache | |
| - task_id: 80 | |
| description: > | |
| Create a Glue database named 'analytics-db' in the Glue Data Catalog, | |
| then create a Glue crawler named 'raw-data-crawler' targeting an S3 path | |
| with the analytics-db as the target database. | |
| success_criteria: | |
| steps: | |
| - operation: create-database | |
| resource: analytics-db | |
| - operation: create-crawler | |
| resource: raw-data-crawler | |
| - task_id: 81 | |
| description: > | |
| Create a CloudFormation stack named 'vpc-stack' using a template URL or | |
| template body that defines a simple VPC resource, then describe the stack | |
| to verify it was created successfully. | |
| success_criteria: | |
| steps: | |
| - operation: create-stack | |
| resource: vpc-stack | |
| - operation: describe-stacks | |
| resource: vpc-stack | |
| - task_id: 82 | |
| description: > | |
| Create an HTTP API in API Gateway V2 named 'products-api' with protocol-type | |
| HTTP, then create a route with route-key 'GET /products' on that API. | |
| success_criteria: | |
| steps: | |
| - operation: create-api | |
| resource: products-api | |
| - operation: create-route | |
| resource: products-api | |
| - task_id: 83 | |
| description: > | |
| Create an S3 bucket named 'firehose-delivery', then create a Kinesis | |
| Firehose delivery stream named 'event-stream' with an S3 destination | |
| configuration pointing to the firehose-delivery bucket. | |
| success_criteria: | |
| steps: | |
| - operation: create-bucket | |
| resource: firehose-delivery | |
| - operation: create-delivery-stream | |
| resource: event-stream | |
| - task_id: 84 | |
| description: > | |
| Create an SQS queue named 'task-queue' with a visibility timeout of 60 | |
| seconds, then send a message to the queue with a body containing a JSON | |
| payload representing a processing task. | |
| success_criteria: | |
| steps: | |
| - operation: create-queue | |
| resource: task-queue | |
| - operation: send-message | |
| resource: task-queue | |
| - task_id: 85 | |
| description: > | |
| Create a DynamoDB table named 'products' with partition key 'product_id' (S) | |
| and sort key 'category' (S), then put an item into the table with product_id | |
| 'P001', category 'electronics', and name 'Wireless Mouse'. | |
| success_criteria: | |
| steps: | |
| - operation: create-table | |
| resource: products | |
| - operation: put-item | |
| resource: products | |
| - task_id: 86 | |
| description: > | |
| Create an IAM role named 'firehose-delivery-role' with an assume-role policy | |
| for firehose.amazonaws.com, then create an IAM policy named 's3-write-policy' | |
| granting s3:PutObject access and attach it to the role. | |
| success_criteria: | |
| steps: | |
| - operation: create-role | |
| resource: firehose-delivery-role | |
| - operation: create-policy | |
| resource: s3-write-policy | |
| - operation: attach-role-policy | |
| resource: firehose-delivery-role | |