arazzo: 1.0.1
info:
title: Amazon EC2 Place an Instance in an Availability Zone
summary: Describe regions and availability zones, then launch an instance in a chosen zone.
description: >-
Picks a placement target and launches into it. The workflow lists the
enabled regions, lists the availability zones available in the current
region, and then launches an instance using the supplied AMI and instance
type. Every step spells out its request inline using the Amazon EC2 query
protocol (Action and Version parameters) so the flow can be read and
executed without opening the underlying OpenAPI description.
version: 1.0.0
x-realizes-capability-ids:
- BC-600.50
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-600.50
capability_name: IT Infrastructure Management
spec: amazon-ec2-regions-api-openapi.yml
confidence: 0.7
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: instancesApi
url: ../openapi/amazon-ec2-instances-api-openapi.yml
type: openapi
- name: regionsApi
url: ../openapi/amazon-ec2-regions-api-openapi.yml
type: openapi
workflows:
- workflowId: place-instance-in-zone
summary: Survey regions and zones, then launch an instance.
description: >-
Chains DescribeRegions, DescribeAvailabilityZones, and RunInstances so a
placement decision is informed by live region and zone data before launch.
inputs:
type: object
required:
- imageId
- instanceType
properties:
imageId:
type: string
description: The AMI ID to launch the instance from.
instanceType:
type: string
description: The EC2 instance type to launch.
subnetId:
type: string
description: Optional subnet ID identifying the target zone placement.
steps:
- stepId: listRegions
description: List the regions enabled for the account.
operationId: describeRegions
parameters:
- name: Action
in: query
value: DescribeRegions
- name: Version
in: query
value: '2016-11-15'
successCriteria:
- condition: $statusCode == 200
outputs:
regionsStatus: $statusCode
- stepId: listZones
description: List the availability zones in the current region.
operationId: describeAvailabilityZones
parameters:
- name: Action
in: query
value: DescribeAvailabilityZones
- name: Version
in: query
value: '2016-11-15'
successCriteria:
- condition: $statusCode == 200
outputs:
zonesStatus: $statusCode
- stepId: launchInZone
description: Launch an instance into the selected placement.
operationId: runInstances
parameters:
- name: Action
in: query
value: RunInstances
- name: Version
in: query
value: '2016-11-15'
- name: ImageId
in: query
value: $inputs.imageId
- name: InstanceType
in: query
value: $inputs.instanceType
- name: MinCount
in: query
value: 1
- name: MaxCount
in: query
value: 1
- name: SubnetId
in: query
value: $inputs.subnetId
successCriteria:
- condition: $statusCode == 200
outputs:
instanceId: $response.body#/instances/0/instanceId
outputs:
instanceId: $steps.launchInZone.outputs.instanceId
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.