Amazon Elastic Load Balancing · Arazzo Workflow

Amazon Elastic Load Balancing Audit Load Balancer Configuration

Version 1.0.0

Walk a load balancer's listeners and target groups to inventory its routing.

1 workflow 1 source API 1 provider
View Spec View on GitHub Amazon Web ServicesHigh AvailabilityLoad BalancingNetworkingScalabilityArazzoWorkflows

Provider

amazon-elastic-load-balancing

Workflows

audit-load-balancer-configuration
Inventory a load balancer's listeners, target groups, and target health.
Chains describeLoadBalancers, describeListeners, describeTargetGroups, and describeTargetHealth so the full routing topology of a named load balancer is gathered for review.
4 steps inputs: loadBalancerName outputs: listeners, loadBalancerArn, stateCode, targetGroups, targetHealthDescriptions
1
findLoadBalancer
describeLoadBalancers
Resolve the load balancer ARN from its name.
2
listListeners
describeListeners
List the listeners attached to the load balancer.
3
listTargetGroups
describeTargetGroups
List the target groups attached to the load balancer.
4
listTargetHealth
describeTargetHealth
Read the health of the members in the first attached target group.

Source API Descriptions

Arazzo Workflow Specification

amazon-elastic-load-balancing-audit-load-balancer-configuration-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Elastic Load Balancing Audit Load Balancer Configuration
  summary: Walk a load balancer's listeners and target groups to inventory its routing.
  description: >-
    Produces a read-only inventory of a load balancer's routing configuration.
    It resolves the load balancer by name, lists its listeners, reads the
    target groups attached to it, and reads the health of those target groups'
    members so an operator can audit the full topology in a single run. Each
    step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description. The Elastic Load
    Balancing v2 API uses the AWS query protocol, so every operation is a GET
    whose inputs are carried as query parameters rather than a request body.
  version: 1.0.0
sourceDescriptions:
- name: elbv2Api
  url: ../openapi/amazon-elastic-load-balancing-openapi.yml
  type: openapi
workflows:
- workflowId: audit-load-balancer-configuration
  summary: Inventory a load balancer's listeners, target groups, and target health.
  description: >-
    Chains describeLoadBalancers, describeListeners, describeTargetGroups, and
    describeTargetHealth so the full routing topology of a named load balancer
    is gathered for review.
  inputs:
    type: object
    required:
    - loadBalancerName
    properties:
      loadBalancerName:
        type: string
        description: The name of the load balancer to audit.
  steps:
  - stepId: findLoadBalancer
    description: Resolve the load balancer ARN from its name.
    operationId: describeLoadBalancers
    parameters:
    - name: Names
      in: query
      value: $inputs.loadBalancerName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      loadBalancerArn: $response.body#/loadBalancers/0/loadBalancerArn
      stateCode: $response.body#/loadBalancers/0/state/code
  - stepId: listListeners
    description: List the listeners attached to the load balancer.
    operationId: describeListeners
    parameters:
    - name: LoadBalancerArn
      in: query
      value: $steps.findLoadBalancer.outputs.loadBalancerArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      listeners: $response.body#/listeners
  - stepId: listTargetGroups
    description: List the target groups attached to the load balancer.
    operationId: describeTargetGroups
    parameters:
    - name: LoadBalancerArn
      in: query
      value: $steps.findLoadBalancer.outputs.loadBalancerArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      targetGroups: $response.body#/targetGroups
      firstTargetGroupArn: $response.body#/targetGroups/0/targetGroupArn
  - stepId: listTargetHealth
    description: Read the health of the members in the first attached target group.
    operationId: describeTargetHealth
    parameters:
    - name: TargetGroupArn
      in: query
      value: $steps.listTargetGroups.outputs.firstTargetGroupArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      targetHealthDescriptions: $response.body#/targetHealthDescriptions
  outputs:
    loadBalancerArn: $steps.findLoadBalancer.outputs.loadBalancerArn
    stateCode: $steps.findLoadBalancer.outputs.stateCode
    listeners: $steps.listListeners.outputs.listeners
    targetGroups: $steps.listTargetGroups.outputs.targetGroups
    targetHealthDescriptions: $steps.listTargetHealth.outputs.targetHealthDescriptions