Environment ​
The Environment resource lets you manage AWS ElasticBeanstalk Environments to deploy and scale web applications and services.
Minimal Example ​
Create a basic ElasticBeanstalk Environment with required properties and one optional description.
ts
import AWS from "alchemy/aws/control";
const elasticBeanstalkEnv = await AWS.ElasticBeanstalk.Environment("myAppEnvironment", {
ApplicationName: "MyWebApp",
PlatformArn: "arn:aws:elasticbeanstalk:us-west-2::platform/Java 8 running on 64bit Amazon Linux/2.9.0",
Description: "My Elastic Beanstalk environment for the web application"
});
Advanced Configuration ​
Configure an ElasticBeanstalk Environment with additional options such as custom CNAME prefix and environment tier.
ts
const advancedElasticBeanstalkEnv = await AWS.ElasticBeanstalk.Environment("advancedEnv", {
ApplicationName: "MyWebApp",
PlatformArn: "arn:aws:elasticbeanstalk:us-west-2::platform/Node.js 14 running on 64bit Amazon Linux/2.7.2",
CNAMEPrefix: "mywebapp",
Tier: {
Name: "WebServer",
Type: "Standard",
Version: "1.0"
},
OptionSettings: [
{
Namespace: "aws:autoscaling:launchconfiguration",
OptionName: "InstanceType",
Value: "t2.micro"
},
{
Namespace: "aws:elasticbeanstalk:environment",
OptionName: "EnvironmentType",
Value: "LoadBalanced"
}
]
});
Using Tags for Organization ​
Create an environment with tags for better resource organization and management.
ts
const taggedElasticBeanstalkEnv = await AWS.ElasticBeanstalk.Environment("taggedEnv", {
ApplicationName: "MyWebApp",
PlatformArn: "arn:aws:elasticbeanstalk:us-west-2::platform/PHP 7.4 running on 64bit Amazon Linux/2.9.0",
Tags: [
{
Key: "Project",
Value: "WebApp2023"
},
{
Key: "Owner",
Value: "DevTeam"
}
]
});
Environment with Custom Options ​
Demonstrate an environment configured with custom option settings for monitoring and scaling.
ts
const customOptionsEnv = await AWS.ElasticBeanstalk.Environment("customOptionsEnv", {
ApplicationName: "MyWebApp",
PlatformArn: "arn:aws:elasticbeanstalk:us-west-2::platform/DotNet Core 3.1 running on 64bit Amazon Linux/2.3.4",
OptionSettings: [
{
Namespace: "aws:elasticbeanstalk:application",
OptionName: "ApplicationHealthcheckURL",
Value: "/health"
},
{
Namespace: "aws:elasticbeanstalk:environment",
OptionName: "ServiceRole",
Value: "arn:aws:iam::123456789012:role/elasticbeanstalk-service-role"
}
]
});