InfrastructureConfiguration
The InfrastructureConfiguration resource allows you to define and manage the infrastructure settings for AWS ImageBuilder, enabling you to automate the creation of images in a controlled and customizable environment. For more details, refer to the AWS ImageBuilder InfrastructureConfigurations documentation.
Minimal Example
Section titled “Minimal Example”Create a basic InfrastructureConfiguration with required properties and a couple of common optional settings.
import AWS from "alchemy/aws/control";
const basicInfrastructureConfig = await AWS.ImageBuilder.InfrastructureConfiguration("basicConfig", { name: "MyBasicInfrastructureConfig", instanceProfileName: "my-ec2-instance-profile", subnetId: "subnet-0123456789abcdef0", securityGroupIds: ["sg-0123456789abcdef0"], logging: { s3Logs: { s3BucketName: "my-logs-bucket", s3KeyPrefix: "imagebuilder-logs/" } }});
Advanced Configuration
Section titled “Advanced Configuration”Configure an InfrastructureConfiguration with additional properties like instance types and SNS topic for notifications.
const advancedInfrastructureConfig = await AWS.ImageBuilder.InfrastructureConfiguration("advancedConfig", { name: "MyAdvancedInfrastructureConfig", instanceProfileName: "my-ec2-instance-profile", subnetId: "subnet-0123456789abcdef0", securityGroupIds: ["sg-0123456789abcdef0"], instanceTypes: ["t2.micro", "t2.medium"], snsTopicArn: "arn:aws:sns:us-west-2:123456789012:my-sns-topic", terminateInstanceOnFailure: true, resourceTags: { "Environment": "Development", "Project": "ImageBuilder" }});
Custom Metadata Options
Section titled “Custom Metadata Options”Demonstrate how to set custom instance metadata options for enhanced security and performance.
const metadataOptionsConfig = await AWS.ImageBuilder.InfrastructureConfiguration("metadataOptionsConfig", { name: "MyMetadataOptionsConfig", instanceProfileName: "my-ec2-instance-profile", subnetId: "subnet-0123456789abcdef0", instanceMetadataOptions: { httpTokens: "required", httpPutResponseHopLimit: 2, instanceMetadataTags: "enabled" }});
Using Resource Tags
Section titled “Using Resource Tags”Create an InfrastructureConfiguration with specific resource tags to help organize and manage resources.
const taggedInfrastructureConfig = await AWS.ImageBuilder.InfrastructureConfiguration("taggedConfig", { name: "MyTaggedInfrastructureConfig", instanceProfileName: "my-ec2-instance-profile", subnetId: "subnet-0123456789abcdef0", resourceTags: { "Owner": "admin@example.com", "Department": "IT" }, tags: { "Project": "ImageBuilder", "CostCenter": "12345" }});
These examples illustrate how to effectively create and manage AWS ImageBuilder InfrastructureConfigurations using Alchemy. Adjust the configurations as necessary to fit your specific requirements.