Amazon web services 无法使用CDK获取群集名称和ASG资源名称
我对使用CDK非常陌生,我正在尝试为我的启动配置生成用户_数据。但是有问题。。。从这里获取用户数据,并尝试将其适应我的CDK模板: 这是我的密码Amazon web services 无法使用CDK获取群集名称和ASG资源名称,amazon-web-services,aws-cdk,Amazon Web Services,Aws Cdk,我对使用CDK非常陌生,我正在尝试为我的启动配置生成用户_数据。但是有问题。。。从这里获取用户数据,并尝试将其适应我的CDK模板: 这是我的密码 const asg = new autoscaling.AutoScalingGroup(this, 'ASG', { vpc: existingVpc, instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSi
const asg = new autoscaling.AutoScalingGroup(this, 'ASG', {
vpc: existingVpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.XLARGE),
machineImage: ecs.EcsOptimizedImage.amazonLinux2(),
minCapacity: 3,
desiredCapacity: 3,
maxCapacity: 10,
instanceMonitoring: autoscaling.Monitoring.DETAILED,
});
// Create an ECS cluster
const cluster = new ecs.Cluster(this, 'Cluster', {
vpc: existingVpc,
clusterName: envName,
});
asg.addUserData(`
echo ECS_CLUSTER=${cluster.clusterName} >> /etc/ecs/ecs.config
yum install -y aws-cfn-bootstrap
/opt/aws/bin/cfn-signal -e $? --stack ${this.stackName} --resource ${asg} --region ${this.region}
`
)
这将生成以下用户数据
UserData:
Fn::Base64:
Fn::Join:
- ""
- - |-
#!/bin/bash
echo ECS_CLUSTER=
- Ref: ClusterEB0386A7
- |2
>> /etc/ecs/ecs.config
yum install -y aws-cfn-bootstrap
/opt/aws/bin/cfn-signal -e $? --stack CdkClusterStack --resource CdkClusterStack/ASG --region eu-west-1
这让我很困惑。cluster.clusterName
根本不返回集群名称,而是对底层集群资源的引用
对于ASG,生成了以下内容,我想这里不是我当前得到的CdkClusterStack/ASG
,而是需要ASG46ED3070
ASG46ED3070:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
MaxSize: "10"
MinSize: "3"
DesiredCapacity: "3"
.... more stuff ....
请告知 ECS群集上逻辑ID的Ref返回资源名称,在本例中为群集名称。
当您将此资源的逻辑ID传递给固有Ref函数时,Ref返回资源名称。
这是来自页面的
为了检查这一点,我将添加cluster.clusterName作为cfnOutput,并检查它是否为您提供了实际的集群名称