ResourceAssociation
The ResourceAssociation resource allows you to associate existing AWS resources with an application in AWS Service Catalog AppRegistry. This enables you to manage and visualize the resources that comprise an application. For more information, see the official AWS documentation: AWS ServiceCatalogAppRegistry ResourceAssociations.
Minimal Example
Section titled “Minimal Example”Create a basic resource association with required properties and an optional adoption flag.
import AWS from "alchemy/aws/control";
const resourceAssociation = await AWS.ServiceCatalogAppRegistry.ResourceAssociation("myResourceAssociation", { Resource: "arn:aws:ec2:us-west-2:123456789012:instance/i-0abcd1234efgh5678", ResourceType: "AWS::EC2::Instance", Application: "arn:aws:servicecatalog:us-west-2:123456789012:application/myApp", adopt: true // Optional: adopt existing resource if it already exists});
Advanced Configuration
Section titled “Advanced Configuration”Configure a resource association with more complex attributes, including handling additional properties such as ARN and timestamps.
const advancedResourceAssociation = await AWS.ServiceCatalogAppRegistry.ResourceAssociation("advancedResourceAssociation", { Resource: "arn:aws:s3:::my-bucket", ResourceType: "AWS::S3::Bucket", Application: "arn:aws:servicecatalog:us-west-2:123456789012:application/myApp"});
// You can access additional properties like ARN, creation time, and last update timeconsole.log(`Resource ARN: ${advancedResourceAssociation.Arn}`);console.log(`Resource Created At: ${advancedResourceAssociation.CreationTime}`);console.log(`Last Updated At: ${advancedResourceAssociation.LastUpdateTime}`);
Associating Multiple Resources
Section titled “Associating Multiple Resources”Demonstrate how to create multiple resource associations for different types of resources within the same application.
const ec2InstanceAssociation = await AWS.ServiceCatalogAppRegistry.ResourceAssociation("ec2ResourceAssociation", { Resource: "arn:aws:ec2:us-west-2:123456789012:instance/i-0abcd1234efgh5678", ResourceType: "AWS::EC2::Instance", Application: "arn:aws:servicecatalog:us-west-2:123456789012:application/myApp"});
const s3BucketAssociation = await AWS.ServiceCatalogAppRegistry.ResourceAssociation("s3ResourceAssociation", { Resource: "arn:aws:s3:::my-bucket", ResourceType: "AWS::S3::Bucket", Application: "arn:aws:servicecatalog:us-west-2:123456789012:application/myApp"});
Error Handling with Adoption
Section titled “Error Handling with Adoption”Show how to handle errors gracefully when attempting to associate a resource that may already exist, using the adopt flag.
try { const existingResourceAssociation = await AWS.ServiceCatalogAppRegistry.ResourceAssociation("existingResourceAssociation", { Resource: "arn:aws:rds:us-west-2:123456789012:db:my-database", ResourceType: "AWS::RDS::DBInstance", Application: "arn:aws:servicecatalog:us-west-2:123456789012:application/myApp", adopt: true // This will allow adoption of the existing resource });} catch (error) { console.error("Failed to associate resource:", error);}