给定以下 Cloudformation JSON:
"MyServer" : {
"Type" : "AWS::EC2::EIP",
"Properties" : {
"InstanceId" : { "Ref" : "LinuxServer" }
}
},
例如,在 Java CDK 类中,software.amazon.awscdk.services.ec2.CfnEIP
中的属性 InstanceId
是一个字符串,但在 Cloudformation JSON 中,它可以是字符串或对象(具有“Ref”属性)
如何将 Ref 对象(或任何其他类型)传递给 CfnEIP
类(或也支持“Ref”属性的任何其他类)而不是此类所需的 String?
编辑
我发现所有继承自 CfnRefElement
的类都有一个 getRef()
方法,该方法返回一个字符串,并在幕后从字符串转换到一个对象:
从 "InstanceId": "notWorkingRef"}
(Java 字符串属性)到 "InstanceId": { "Ref": "someRef"}
。
但是有些 Cfn 类(例如 CfnParameter(核心库))不是从 CfnRefElement
继承的,而是从 CfnElement
继承的,并且这些类曾经没有 >getRef()
方法 - 如何一次获得相同的结果?
最佳答案
CfnParameter 构造通常是 Cloudformation 参数的泛化,其本身并不是特定参数。它是 cfn 构造的元素,因此继承 CfnElement。 CfnRefElement 类的存在是为了允许创建非资源、可引用、单独的 Cloudformation 构造。它不像 CfnResource 那样具体,并且扩展了 CfnElement,就像 CfnParameter 一样。 CfnParameter 不包含 .ref 元素,因为它是较低级别的概括,因此需要一个。
最初回答于 Github
关于java - java中等效的AWS cloudformation的json "Ref"是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58319102/