Skip to content

Integration ​

The Integration resource allows you to manage AWS Redshift Integrations for secure data sharing between AWS services and your Redshift cluster.

Minimal Example ​

Create a basic Redshift integration with required properties and a common optional property.

ts
import AWS from "alchemy/aws/control";

const redshiftIntegration = await AWS.Redshift.Integration("basicIntegration", {
  SourceArn: "arn:aws:s3:::my-data-bucket",
  TargetArn: "arn:aws:redshift:us-west-2:123456789012:cluster:my-cluster",
  KMSKeyId: "arn:aws:kms:us-west-2:123456789012:key/my-key-id" // Optional
});

Advanced Configuration ​

Configure a Redshift integration with additional encryption context and tags for better management.

ts
const advancedIntegration = await AWS.Redshift.Integration("advancedIntegration", {
  SourceArn: "arn:aws:s3:::my-secure-data-bucket",
  TargetArn: "arn:aws:redshift:us-west-2:123456789012:cluster:my-cluster",
  KMSKeyId: "arn:aws:kms:us-west-2:123456789012:key/my-key-id",
  AdditionalEncryptionContext: {
    "Project": "DataPipeline",
    "Environment": "Production"
  },
  Tags: [
    { Key: "Owner", Value: "DataTeam" },
    { Key: "Environment", Value: "Production" }
  ]
});

Adoption of Existing Resources ​

If you want to adopt an existing Redshift integration rather than creating a new one, you can set the adopt flag to true.

ts
const adoptIntegration = await AWS.Redshift.Integration("adoptedIntegration", {
  SourceArn: "arn:aws:s3:::existing-bucket",
  TargetArn: "arn:aws:redshift:us-west-2:123456789012:cluster:my-cluster",
  adopt: true // This will adopt the existing resource if it exists
});