AWS CDK 是 Amazon Web Services (AWS) 的 Cloud Development Kit,允许开发人员以编程方式创建基础设施。ComputeEnvironment 是 AWS Batch 中用于执行计算工作负载的计算环境的概念。NotStabilized 表示计算环境还没有稳定,可能是因为它的资源正在被创建或更新。
要解决此问题,可以等待计算环境稳定后再继续进行其他操作。可以使用 AWS CDK 的 “waiters” 功能,等待特定 AWS Batch 计算环境状态的变化。以下是一个示例:
import * as cdk from 'aws-cdk-lib';
import { Stack } from 'aws-cdk-lib';
import * as batch from 'aws-cdk-lib/aws-batch';
import * as batch_waiter from 'aws-cdk-lib/aws-batch/lib/waiter';
class MyBatchStack extends Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const computeEnvironment = new batch.ComputeEnvironment(this, 'MyComputeEnvironment', {
computeEnvironmentName: 'my-compute-environment',
type: batch.ComputeEnvironmentType.MANAGED,
computeResources: {
instanceTypes: [ 'c5.large' ],
maxvCpus: 64,
desiredvCpus: 16,
instanceRole: 'arn:aws:iam::123456789012:instance-profile/my-instance-profile',
subnets: {
subnetType: ec2.SubnetType.PRIVATE
},
securityGroups: [
security_group
]
}
});
const waiter = new batch_waiter.BatchComputeEnvironmentStable(this, 'BatchComputeEnvStable', {
computeEnvironmentArn: computeEnvironment.computeEnvironmentArn
});
// 等待计算环境稳定
waiter.wait({
$waiter: {
delay: 30, // 每隔 30 秒检查一次状态
maxAttempts: 120 // 最大重