ComputeEnvironment
The ComputeEnvironment resource allows you to manage AWS Batch ComputeEnvironments to efficiently run batch jobs on AWS. This resource provides a way to configure the environment settings that determine how AWS Batch will manage compute resources.
Minimal Example
Section titled “Minimal Example”Create a basic ComputeEnvironment with required properties and one optional property.
import AWS from "alchemy/aws/control";
const basicComputeEnvironment = await AWS.Batch.ComputeEnvironment("basicComputeEnv", { Type: "MANAGED", ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole", ComputeEnvironmentName: "BasicComputeEnvironment"});
Advanced Configuration
Section titled “Advanced Configuration”Configure a ComputeEnvironment with additional settings for enhanced resource management.
const advancedComputeEnvironment = await AWS.Batch.ComputeEnvironment("advancedComputeEnv", { Type: "MANAGED", ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole", ComputeEnvironmentName: "AdvancedComputeEnvironment", UnmanagedvCpus: 4, Tags: { Project: "BatchProcessing", Environment: "Production" }, UpdatePolicy: { Type: "MANAGED", Update: { Timeout: 10, RetryAttempts: 2 } }});
EKS Configuration Example
Section titled “EKS Configuration Example”Create a ComputeEnvironment that is configured for use with Amazon EKS.
const eksComputeEnvironment = await AWS.Batch.ComputeEnvironment("eksComputeEnv", { Type: "EKS", ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole", EksConfiguration: { KubernetesNamespace: "batch-jobs", ClusterName: "my-eks-cluster" }, ComputeEnvironmentName: "EKSComputeEnvironment"});
Compute Resources Configuration
Section titled “Compute Resources Configuration”Define a ComputeEnvironment with specific compute resources, including instance types and desired vCPUs.
const resourcesComputeEnvironment = await AWS.Batch.ComputeEnvironment("resourcesComputeEnv", { Type: "MANAGED", ServiceRole: "arn:aws:iam::123456789012:role/AWSBatchServiceRole", ComputeEnvironmentName: "ResourcesComputeEnvironment", ComputeResources: { Type: "EC2", MinvCpus: 0, MaxvCpus: 16, DesiredvCpus: 4, InstanceTypes: ["optimal"], Subnets: ["subnet-12345678", "subnet-87654321"], SecurityGroupIds: ["sg-0123456789abcdef0"], AllocationStrategy: "BEST_FIT_PROGRESSIVE" }});