Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon cloudformation 从aws cdk生成的VPC定义中获取EIP作为输出_Amazon Cloudformation_Aws Cdk - Fatal编程技术网

Amazon cloudformation 从aws cdk生成的VPC定义中获取EIP作为输出

Amazon cloudformation 从aws cdk生成的VPC定义中获取EIP作为输出,amazon-cloudformation,aws-cdk,Amazon Cloudformation,Aws Cdk,有一个vpc定义,通过 const vpc = new ec2.Vpc(this, 'SomeVPC', { cidr: '10.0.0.0/16', maxAzs: 2, }); 在引擎盖下,它为NAT网关创建了2个EIP "SomeVPCPublicSubnet1EIP58E3D6C5": { "Type": "AWS::EC2::EIP", "Properties": { "Domain": "vpc" } } 如何获取对它们的引

有一个vpc定义,通过

 const vpc = new ec2.Vpc(this, 'SomeVPC', {
        cidr: '10.0.0.0/16',
        maxAzs: 2,
 });
在引擎盖下,它为NAT网关创建了2个EIP

"SomeVPCPublicSubnet1EIP58E3D6C5": {
  "Type": "AWS::EC2::EIP",
  "Properties": {
    "Domain": "vpc"
  }
}
如何获取对它们的引用并通过
CfnOutput
导出?大概是这样的:

new CfnOutput(this, "ExternalIPOutput", {value: <some magic call to get SomeVPCPublicSubnet1EIP58E3D6C5.ref()>})
newcfnoutput(这是“ExternalIPOutput”,{value:})

已经有一段时间了,但我今天遇到了这个问题,这就是我如何处理它并抓住EIP的方法-

代码片段:


//创建新的专有网络
const vpc=新的ec2.vpc(此“vpc”{
cidr:props.customCidr,
马克萨兹:2,
子网配置:[
{
姓名:'私人',
子网类型:ec2.subnetType.PRIVATE
},
{
名称:'公共',
子网类型:ec2.subnetType.PUBLIC
}
]
});
//获得弹性IP
vpc.publicSubnets.forEach((子网,索引)=>{
//找到弹性IP
const EIP=subnet.node.tryFindChild('EIP')作为ec2.CfnEIP
新的cdk.CfnOutput(this,`output eip-${index}`,{value:eip.ref});
})
输出:


已经有一段时间了,但我今天遇到了这个问题,这就是我如何处理它并抓住EIP的方法-

代码片段:


//创建新的专有网络
const vpc=新的ec2.vpc(此“vpc”{
cidr:props.customCidr,
马克萨兹:2,
子网配置:[
{
姓名:'私人',
子网类型:ec2.subnetType.PRIVATE
},
{
名称:'公共',
子网类型:ec2.subnetType.PUBLIC
}
]
});
//获得弹性IP
vpc.publicSubnets.forEach((子网,索引)=>{
//找到弹性IP
const EIP=subnet.node.tryFindChild('EIP')作为ec2.CfnEIP
新的cdk.CfnOutput(this,`output eip-${index}`,{value:eip.ref});
})
输出:


您想挑选什么<代码>CfnOutput打印字符串only@AmitBaranes只需将IP本身导入,然后将其在单独的堆栈中导入到安全性grpI建议使用ssm,这样就更容易写入ssm并从中读取。你所说的IP本身是什么意思?请提供更多信息information@AmitBaranes你用过aws cdk吗?你可以在那里定义vpc,它在引擎盖下创建了一系列不同的组件。其中之一是EIP。我需要通过CDKAPI获取对它的引用。这是我的问题。因此,我需要打印IP的堆栈输出您希望选择什么<代码>CfnOutput打印字符串only@AmitBaranes只需将IP本身导入,然后将其在单独的堆栈中导入到安全性grpI建议使用ssm,这样就更容易写入ssm并从中读取。你所说的IP本身是什么意思?请提供更多信息information@AmitBaranes你用过aws cdk吗?你可以在那里定义vpc,它在引擎盖下创建了一系列不同的组件。其中之一是EIP。我需要通过CDKAPI获取对它的引用。这是我的问题。因此,我希望在打印IP的地方进行堆栈输出。这正是我所需要的!很高兴我能帮忙:)谢谢,这正是我需要的!很高兴我能帮忙:)