Amazon web services 检索通过CFT创建的托管Apache应用程序的EC2的IP地址和端口号

Amazon web services 检索通过CFT创建的托管Apache应用程序的EC2的IP地址和端口号,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,我想检索托管ApacheSolr应用程序的EC2实例的IP地址,该应用程序是通过我的CFT创建的,以及它正在运行的端口号。我需要将此信息传递到另一个堆栈。有什么方法可以做到这一点吗?通常,这是通过CloudFormation输出完成的: 语法如下所示: "Outputs" : { "Logical ID" : { "Description" : "Information about the value", "Value" : "Value

我想检索托管ApacheSolr应用程序的EC2实例的IP地址,该应用程序是通过我的CFT创建的,以及它正在运行的端口号。我需要将此信息传递到另一个堆栈。有什么方法可以做到这一点吗?

通常,这是通过CloudFormation输出完成的:

语法如下所示:


    "Outputs" : {
      "Logical ID" : {
        "Description" : "Information about the value",
        "Value" : "Value to return",
        "Export" : {
          "Name" : "Value to export"
        }
      }
    }

例如: 这里我们定义一个简单的EC2实例

    "Server" : {
        "Type" : "AWS::EC2::Instance",
        "Properties" : {
        }
    }
在这个语句中,我们公开了实例的public-ip属性


    "Outputs" : {
        "PublicIp" : {
          "Value" : { "Fn::GetAtt" : [ "Server", "PublicIp" ]},
          "Description" : "Server's PublicIp Address"
        }
    }

(从本期中获得的示例:信用应归于:Matt Houser)

默认情况下,Solr在端口8983上运行,因此,除非不是这样,否则可能可以使用此端口

在这种情况下,您的输出可能如下所示:


    "Outputs" : {
        "PublicIp" : {
          "Value" : { "Fn::GetAtt" : [ "Server", "PublicIp" ]},
          "Description" : "Server's PublicIp Address"
        },
        "SolrPort" : {
          "Value" : "8983",
          "Description" : "Port that Solr is running on."
        }
    }