Amazon Elastic Beanstalk · Arazzo Workflow

Amazon Elastic Beanstalk Update Environment Configuration

Version 1.0.0

Apply configuration option settings to a running environment and poll until the change settles.

1 workflow 1 source API 1 provider
View Spec View on GitHub Amazon Web ServicesAuto ScalingDeploymentElastic BeanstalkPaaSPlatform As A ServiceWeb ApplicationsArazzoWorkflows

Provider

amazon-elastic-beanstalk

Workflows

update-environment-configuration
Apply option settings to an environment and wait for it to stabilize.
Confirms the environment is Ready, applies the supplied OptionSettings with UpdateEnvironment, then polls until the environment status returns to Ready.
3 steps inputs: environmentName, optionSettings outputs: environmentHealth, environmentId, environmentStatus
1
checkEnvironmentReady
describeEnvironments
Describe the environment to confirm it exists and is currently Ready before applying configuration changes.
2
applyOptions
updateEnvironment
Apply the supplied configuration option settings to the running environment.
3
pollReconfiguration
describeEnvironments
Describe the environment and branch on its status — loop back while it is still Updating, end when it returns to Ready, and fail on a terminal Terminated status.

Source API Descriptions

Arazzo Workflow Specification

amazon-elastic-beanstalk-update-environment-configuration-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Elastic Beanstalk Update Environment Configuration
  summary: Apply configuration option settings to a running environment and poll until the change settles.
  description: >-
    Reconfigures a running Elastic Beanstalk environment by applying a set of
    configuration option settings (namespace / option name / value triples) via
    UpdateEnvironment, then polls the environment description until the
    configuration change finishes and the environment returns to Ready. Every
    step spells out its AWS query-protocol request inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: elasticBeanstalkApi
  url: ../openapi/amazon-elastic-beanstalk-openapi.yml
  type: openapi
workflows:
- workflowId: update-environment-configuration
  summary: Apply option settings to an environment and wait for it to stabilize.
  description: >-
    Confirms the environment is Ready, applies the supplied OptionSettings with
    UpdateEnvironment, then polls until the environment status returns to Ready.
  inputs:
    type: object
    required:
    - environmentName
    - optionSettings
    properties:
      environmentName:
        type: string
        description: The name of the environment to reconfigure.
      optionSettings:
        type: array
        description: >-
          The configuration option values to apply. Each item is an object with
          Namespace, OptionName, and Value (and optional ResourceName).
        items:
          type: object
          properties:
            ResourceName:
              type: string
            Namespace:
              type: string
            OptionName:
              type: string
            Value:
              type: string
  steps:
  - stepId: checkEnvironmentReady
    description: >-
      Describe the environment to confirm it exists and is currently Ready
      before applying configuration changes.
    operationId: describeEnvironments
    parameters:
    - name: Action
      in: query
      value: DescribeEnvironments
    - name: Version
      in: query
      value: '2010-12-01'
    - name: EnvironmentNames.member.1
      in: query
      value: $inputs.environmentName
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.Environments[0].Status == "Ready"
      type: jsonpath
    outputs:
      environmentId: $response.body#/Environments/0/EnvironmentId
  - stepId: applyOptions
    description: >-
      Apply the supplied configuration option settings to the running
      environment.
    operationId: updateEnvironment
    parameters:
    - name: Action
      in: query
      value: UpdateEnvironment
    - name: Version
      in: query
      value: '2010-12-01'
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        EnvironmentName: $inputs.environmentName
        OptionSettings: $inputs.optionSettings
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      environmentId: $response.body#/EnvironmentId
      status: $response.body#/Status
  - stepId: pollReconfiguration
    description: >-
      Describe the environment and branch on its status — loop back while it is
      still Updating, end when it returns to Ready, and fail on a terminal
      Terminated status.
    operationId: describeEnvironments
    parameters:
    - name: Action
      in: query
      value: DescribeEnvironments
    - name: Version
      in: query
      value: '2010-12-01'
    - name: EnvironmentNames.member.1
      in: query
      value: $inputs.environmentName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/Environments/0/Status
      health: $response.body#/Environments/0/Health
    onSuccess:
    - name: reconfigurationComplete
      type: end
      criteria:
      - context: $response.body
        condition: $.Environments[0].Status == "Ready"
        type: jsonpath
    - name: reconfigurationFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.Environments[0].Status == "Terminated"
        type: jsonpath
    - name: keepPolling
      type: goto
      stepId: pollReconfiguration
      criteria:
      - context: $response.body
        condition: $.Environments[0].Status == "Updating"
        type: jsonpath
  outputs:
    environmentId: $steps.applyOptions.outputs.environmentId
    environmentStatus: $steps.pollReconfiguration.outputs.status
    environmentHealth: $steps.pollReconfiguration.outputs.health