Retreive AWS SSM parameter values so that their configurations can be used by other template actions
Input Schema
| Property | Type | Description | Required |
|---|---|---|---|
| paramKeys | array | - | |
| envProviders | array | - |
Output Schema
| Property | Type | Description | Required |
|---|---|---|---|
| params | object | - |
Usage Examples
Fetch dev and prod SSM parameters and render config files
Retrieve a fixed set of SSM parameters for dev and prod accounts, then pass them to a later step to render config files with fetch:template.
steps:
- id: fetchBase
action: fetch:template
input:
url: ./skeleton
targetPath: .
values:
serviceId: ${{ parameters.serviceId }}
owner: ${{ parameters.owner }}
- id: getSsmParams
action: harmonix:get-ssm-parameters
input:
paramKeys:
- /acme/payments/DB_HOST
- /acme/payments/DB_PORT
- /acme/payments/DB_NAME
- /acme/payments/DB_PASSWORD
envProviders:
- name: dev
region: us-east-1
roleArn: arn:aws:iam::111111111111:role/ssm-parameter-read
- name: prod
region: us-west-2
roleArn: arn:aws:iam::222222222222:role/ssm-parameter-read
- id: renderConfig
action: fetch:template
input:
url: ./templates/config
targetPath: ./config
values:
serviceId: ${{ parameters.serviceId }}
# Pass through the full params object so templates can select values as needed
ssmParams: ${{ steps.getSsmParams.output.params }}Parameterized SSM paths across selected environments
Use template parameters to build SSM paths per service and environment, and accept the list of environment providers from user input. The retrieved params are then made available to a templating step with fetch:template.
steps:
- id: scaffoldSkeleton
action: fetch:template
input:
url: ./service-skeleton
targetPath: .
values:
name: ${{ parameters.name }}
description: ${{ parameters.description }}
- id: getRuntimeConfig
action: harmonix:get-ssm-parameters
input:
paramKeys:
- /acme/${{ parameters.envPrefix }}/services/${{ parameters.serviceId }}/API_BASE_URL
- /acme/${{ parameters.envPrefix }}/services/${{ parameters.serviceId }}/SENTRY_DSN
- /acme/${{ parameters.envPrefix }}/services/${{ parameters.serviceId }}/FEATURE_FLAGS
envProviders: ${{ parameters.envProviders }}
- id: renderManifests
action: fetch:template
input:
url: ./templates/k8s
targetPath: ./deploy
values:
serviceId: ${{ parameters.serviceId }}
environments: ${{ parameters.envProviders }}
ssmParams: ${{ steps.getRuntimeConfig.output.params }}