Skip to content

@effect-aws/ssm

npm versionnpm downloads

This package provides a fromParameterStore ConfigProvider constructor function. You can use it to read parameters from AWS Systems Manager Parameter Store as a Config schema.

The config primitive name must match the parameter Name or ARN in Parameter Store. For example, Config.string("my_parameter_name") or Config.string("arn:aws:ssm:eu-central-1:123456789012:parameter/my_parameter_name").

Installation

bash
npm install --save @effect-aws/ssm @effect-aws/client-ssm

Usage

With default service layer:

typescript
import { SSM } from "@effect-aws/client-ssm"
import { ConfigProvider } from "@effect-aws/ssm"
import { Effect, Config, Console } from "effect"

const program = Effect.gen(function* () {
  const param: string = yield* Config.string("my_parameter_name")

  yield* Console.log("Parameter from Parameter Store: ", param)
})

program.pipe(
  ConfigProvider.withParameterStoreConfigProvider(),
  Effect.provide(SSM.defaultLayer),
  Effect.runPromise
)

With custom service layer:

typescript
import { SSM } from "@effect-aws/client-ssm"
import { ConfigProvider } from "@effect-aws/ssm"
import { Config, Console, Effect } from "effect"

const program = Effect.gen(function* () {
  const param: string = yield* Config.string("my_parameter_name")

  yield* Console.log("Parameter from Parameter Store: ", param)
})

const serviceLayer = SSM.layer({ region: "eu-central-1" })

program.pipe(
  Effect.provide(ConfigProvider.setParameterStoreConfigProvider()),
  Effect.provide(serviceLayer),
  Effect.runPromise
)

Released under the MIT License.