java - java中等效的AWS cloudformation的json "Ref"是什么

标签 java amazon-web-services aws-cdk

给定以下 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/

相关文章:

javascript - AWS CDK 用户池授权者

java - 使用工业级加密保护 Java 免受逆向工程

java - 删除并保存 Child : JPA

java - 无法从 ADFS 服务器获取 SAML 响应

javascript - 在 s3 aws 中为对象创建签名 url 时如何设置内容类型?

aws-cloudformation - 使用 Cloudformation 时如何防止 AWS Cognito 应用程序客户端重新创建?

java - 坐标 - 查看给定的 X、Y 是否在正方形区域内,如果不在,则找到最近的位置

css - 编辑 AWS 上托管的 MediaWiki 菜单

php - 如何在 Elastic Beanstalk 多容器 Docker 环境上安装 Composer 依赖项

amazon-web-services - 如何在 CDK typescript 中创建 Dynamodb 指标