Skip to content
GitHubXDiscord

Association

The Association resource lets you create, update, and manage AWS SSM Associations which define a set of actions to be performed on specified managed instances.

Create a basic SSM Association that specifies a document to be executed on a single instance.

import AWS from "alchemy/aws/control";
const association = await AWS.SSM.Association("basicAssociation", {
name: "AWS-RunShellScript",
instanceId: "i-0abcd1234efgh5678",
parameters: {
commands: ["echo 'Hello, World!'"]
}
});

Configure an SSM Association with a schedule expression and additional parameters for enhanced functionality.

const scheduledAssociation = await AWS.SSM.Association("scheduledAssociation", {
name: "AWS-RunShellScript",
instanceId: "i-0abcd1234efgh5678",
parameters: {
commands: ["echo 'Scheduled Task Executed'"]
},
scheduleExpression: "cron(0 12 * * ? *)", // Every day at 12 PM UTC
complianceSeverity: "CRITICAL",
maxErrors: "1",
maxConcurrency: "50%"
});

Create an SSM Association that targets multiple instances based on specified criteria.

const targetAssociation = await AWS.SSM.Association("targetAssociation", {
name: "AWS-RunShellScript",
targets: [
{
key: "tag:Environment",
values: ["Production"]
}
],
parameters: {
commands: ["echo 'Executed on Production Instances'"]
}
});

Set up an SSM Association with an output location to store results of the command execution.

const outputLocationAssociation = await AWS.SSM.Association("outputLocationAssociation", {
name: "AWS-RunShellScript",
instanceId: "i-0abcd1234efgh5678",
parameters: {
commands: ["echo 'Output is being stored'"]
},
outputLocation: {
S3Location: {
outputS3BucketName: "my-ssm-output-bucket",
outputS3KeyPrefix: "ssm-output/"
}
}
});