What is @aws-cdk/aws-ssm?
@aws-cdk/aws-ssm is an AWS Cloud Development Kit (CDK) library that allows you to interact with AWS Systems Manager (SSM) services. It provides constructs for defining and managing SSM parameters, documents, and associations within your CDK applications.
What are @aws-cdk/aws-ssm's main functionalities?
Create SSM Parameter
This feature allows you to create a new SSM parameter. The code sample demonstrates how to create a string parameter named 'myParameter' with the value 'myValue'.
const ssm = require('@aws-cdk/aws-ssm');
const cdk = require('@aws-cdk/core');
const app = new cdk.App();
const stack = new cdk.Stack(app, 'MyStack');
new ssm.StringParameter(stack, 'MyParameter', {
parameterName: 'myParameter',
stringValue: 'myValue',
});
app.synth();
Retrieve SSM Parameter
This feature allows you to retrieve an existing SSM parameter. The code sample demonstrates how to retrieve a string parameter named 'myParameter' and log its value.
const ssm = require('@aws-cdk/aws-ssm');
const cdk = require('@aws-cdk/core');
const app = new cdk.App();
const stack = new cdk.Stack(app, 'MyStack');
const parameter = ssm.StringParameter.fromStringParameterName(stack, 'MyParameter', 'myParameter');
console.log(parameter.stringValue);
Create SSM Document
This feature allows you to create a new SSM document. The code sample demonstrates how to create a document with a shell script that echoes 'Hello World'.
const ssm = require('@aws-cdk/aws-ssm');
const cdk = require('@aws-cdk/core');
const app = new cdk.App();
const stack = new cdk.Stack(app, 'MyStack');
new ssm.CfnDocument(stack, 'MyDocument', {
content: JSON.stringify({
schemaVersion: '2.2',
description: 'My SSM Document',
mainSteps: [
{
action: 'aws:runShellScript',
name: 'exampleStep',
inputs: {
runCommand: ['echo Hello World']
}
}
]
}),
documentType: 'Command'
});
app.synth();
Other packages similar to @aws-cdk/aws-ssm
aws-sdk
The aws-sdk package is the official AWS SDK for JavaScript, which provides a comprehensive set of tools for interacting with AWS services, including SSM. Unlike @aws-cdk/aws-ssm, which is focused on infrastructure as code, aws-sdk is more general-purpose and can be used for a wide range of AWS service interactions.
serverless-ssm-fetch
The serverless-ssm-fetch package is a Serverless Framework plugin that allows you to fetch SSM parameters and use them in your serverless applications. It is more specialized than @aws-cdk/aws-ssm and is designed specifically for use with the Serverless Framework.
ssm-parameter-store
The ssm-parameter-store package is a lightweight library for interacting with AWS SSM Parameter Store. It provides a simple API for getting and setting parameters, but lacks the broader infrastructure management capabilities of @aws-cdk/aws-ssm.
AWS Systems Manager Construct Library
This module is part of the AWS Cloud Development Kit project.
Installation
Install the module:
$ npm i @aws-cdk/aws-ssm
Import it into your code:
import ssm = require('@aws-cdk/aws-ssm');
Using existing SSM Parameters in your CDK app
You can reference existing SSM Parameter Store values that you want to use in
your CDK app by using ssm.ParameterStoreString
:
using SSM parameter
Creating new SSM Parameters in your CDK app
You can create either ssm.StringParameter
or ssm.StringListParameter
s in
a CDK app. These are public (not secret) values. Parameters of type
SecretString cannot be created directly from a CDK application; if you want
to provision secrets automatically, use Secrets Manager Secrets (see the
@aws-cdk/aws-secretsmanager
package).
new ssm.StringParameter(stack, 'Parameter', {
allowedPattern: '.*',
description: 'The value Foo',
parameterName: 'FooParameter',
stringValue: 'Foo',
tier: ssm.ParameterTier.ADVANCED,
});
creating SSM parameters
When specifying an allowedPattern
, the values provided as string literals
are validated against the pattern and an exception is raised if a value
provided does not comply.