什么是Java中等效的AWS Cloudformation的json“ Ref”

时间:2019-10-10 08:59:06

标签: java amazon-web-services aws-cdk

给出以下Cloudformation JSON:

request.session.flush()

对于Java CDK类中的示例,"MyServer" : { "Type" : "AWS::EC2::EIP", "Properties" : { "InstanceId" : { "Ref" : "LinuxServer" } } }, 中的属性InstanceId是字符串,但是在Cloudformation JSON中,它可以是字符串或对象(具有“ Ref”属性) >

如何将Ref对象(或任何其他类型)传递给software.amazon.awscdk.services.ec2.CfnEIP类(或也支持“ Ref”属性的任何其他类)而不是此类所需的String? >

编辑

我发现所有从CfnEIP继承的类都有一个方法CfnRefElement,该方法返回一个String并在幕后将其从字符串转换为对象:

getRef()(Java字符串属性)到"InstanceId" : "notWorkingRef"}

但是有些Cfn类(例如CfnParameter(核心库))不是从"InstanceId" : { "Ref" : "someRef" }继承而是从CfnRefElement继承,而那些曾经不具有CfnElement方法的类-如何一次获得相同的结果?

1 个答案:

答案 0 :(得分:0)

CfnParameter 构造通常是Cloudformation参数的概括,本身不是特定的参数。它是cfn构造的元素,因此继承CfnElement。 CfnRefElement 类的存在是为了允许创建非资源的,可引用的单个Cloudformation构造。它不像CfnResource那样具体,并且像CfnParameter一样扩展了CfnElement。 CfnParameter不包含.ref元素,因为它是较低级别的泛化,因此需要一个。

最初是在Github上回答