Amazon cloudformation 如何在AWS CDK中引用生成的域名`elasticsearch.CfnDomain`?

Amazon cloudformation 如何在AWS CDK中引用生成的域名`elasticsearch.CfnDomain`?,amazon-cloudformation,amazon-cloudwatch,aws-cdk,aws-elasticsearch,Amazon Cloudformation,Amazon Cloudwatch,Aws Cdk,Aws Elasticsearch,我在AWS CDK中创建了一个CfnDomain,并试图获取生成的域名以创建一个警报 const es=new elasticsearch.CfnDomain(this,id,esProps); 新的cloudwatch.CfnAlarm(这个“测试”{ ... 尺寸:[ { 名称:“域名”, 值:es.domainName, }, ], }); 但似乎domainName属性实际上是我传入的参数(我没有传入任何参数,因此它将自动生成),因此它实际上是未定义的,无法使用 是否有任何方法可以指定

我在AWS CDK中创建了一个
CfnDomain
,并试图获取生成的域名以创建一个警报

const es=new elasticsearch.CfnDomain(this,id,esProps);
新的cloudwatch.CfnAlarm(这个“测试”{
...
尺寸:[
{
名称:“域名”,
值:es.domainName,
},
],
});
但似乎
domainName
属性实际上是我传入的参数(我没有传入任何参数,因此它将自动生成),因此它实际上是
未定义的
,无法使用


是否有任何方法可以指定它,以便它将等待创建elasticsearch群集,以便我可以获得生成的域名,或者是否有任何其他方法为群集的度量创建警报?

您使用
CfnDomain.ref
作为维度的域值。红色集群状态的报警创建示例:

const域:CfnDomain=。。。;
常数弹性维数={
“域名”:domain.ref,
};
const metricRed=新度量({
名称空间:“AWS/ES”,
metricName:“ClusterStatus.red”,
统计:“最大值”,
期间:持续时间。分钟(1),
尺寸:弹性尺寸
});
const redAlarm=metricRed.createAlarm(构造“esRedAlarm”{
报警名称:“esRedAlarm”,
评估期:1,
阈值:1
});

谢谢!我看到您正在执行
新度量
,是尝试创建新度量还是引用现有度量?因为据我所知,AWS确实在创建
CfnDomain
时创建了度量,它引用了给定名称空间中的现有度量名称-此类不表示资源,因此不是构造。相反,Metric是一种抽象,它使得在报警和图形中指定指标变得容易。