Retrieve AWS SSM parameter values for platform configurations can be used by other template actions
Input Schema
| Property | Type | Description | Required |
|---|---|---|---|
| region | string | - | |
| paramKeys | array | - |
Output Schema
| Property | Type | Description | Required |
|---|---|---|---|
| params | object | - |
Usage Examples
Inject global platform settings into a service template
Fetch shared platform parameters from AWS SSM in a specific region, then pass them into a service skeleton with fetch:template. Use this when your templates need registry, monitoring, or domain settings managed by the platform team.
steps:
- id: platformParams
action: harmonix:get-platform-parameters
input:
paramKeys:
- /platform/registry/url
- /platform/observability/grafana/url
- /platform/network/base-domain
region: eu-west-1
- id: fetchBase
action: fetch:template
input:
url: https://github.com/acme/platform-templates/node-service
targetPath: ./
values:
name: ${{ parameters.name }}
owner: ${{ parameters.owner }}
containerRegistry: ${{ steps.platformParams.output.params['/platform/registry/url'] }}
grafanaUrl: ${{ steps.platformParams.output.params['/platform/observability/grafana/url'] }}
baseDomain: ${{ steps.platformParams.output.params['/platform/network/base-domain'] }}Load account and environment specific config without setting region
Resolve dynamic SSM parameter keys based on template parameters, then flow them into the code generation step with fetch:template. Use this when values depend on AWS account and environment.
steps:
- id: accountParams
action: harmonix:get-platform-parameters
input:
paramKeys:
- /platform/accounts/${{ parameters.awsAccountId }}/vpc/${{ parameters.env }}/id
- /platform/accounts/${{ parameters.awsAccountId }}/kms/${{ parameters.env }}/key-arn
- /platform/telemetry/otel/collector/endpoint
- id: fetchInfraStack
action: fetch:template
input:
url: https://github.com/acme/platform-templates/aws-infra-stack
targetPath: ./
values:
project: ${{ parameters.project }}
awsAccountId: ${{ parameters.awsAccountId }}
environment: ${{ parameters.env }}
vpcId: ${{ steps.accountParams.output.params['/platform/accounts/' ~ parameters.awsAccountId ~ '/vpc/' ~ parameters.env ~ '/id'] }}
kmsKeyArn: ${{ steps.accountParams.output.params['/platform/accounts/' ~ parameters.awsAccountId ~ '/kms/' ~ parameters.env ~ '/key-arn'] }}
otelCollectorEndpoint: ${{ steps.accountParams.output.params['/platform/telemetry/otel/collector/endpoint'] }}