Атрибут publicip не найден для ресурса во время облачной информации aws - PullRequest
0 голосов
/ 01 июня 2018

Я очень плохо знаком с облачной информацией aws, я пытаюсь запустить EC2 с установкой Neo4j в частном VPC, я нашел кого-то, кто уже создал шаблон облачной информации, например, с Neo4j, но этот экземпляр предназначен для публичного VPC,поэтому я изменил шаблон в соответствии со своими целями, но у меня возникла эта проблема при запуске: «атрибут publicip не найден для ресурса»

Вот некоторая часть сценария (без сценария bash neo4j иНастройка тома EBS):

"Mappings" : {

"AWSRegionArch2AMI" : {
  "eu-west-1"      : { "64" : "ami-58d7e821" }
}

},

"Parameters": {
    "InstanceType" : {
    "Description" : "EC2 instance type",
    "Type" : "String",
    "Default" : "m5.large",
    "ConstraintDescription" : "Must be a valid EC2 instance type."
    },

    "SSHKeyName": {
      "Description": "Name of the SSH key that you will use to access the server (must be on AWS Availability Zone already)",
      "Type": "String"
    },

    "NetworkWhitelist": {
        "Description": " The IP address range that can be used to connect to the Neo4j server (by REST or SSH)",
        "Type": "String",
        "MinLength": "9",
        "MaxLength": "18",
        "Default": "",
        "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
        "ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x."
    },

    "SubnetId" : {
        "Type" : "AWS::EC2::Subnet::Id",
        "Description" : "SubnetId of an existing subnet (for the primary network) in your Virtual Private Cloud (VPC)"
    },

    "SecurityGroupIds": {
        "Type": "AWS::EC2::SecurityGroup::Id",
        "Description" : "Existing SecurityGroups ID"
    },

    "AvailabilityZone": {
        "Type" : "AWS::EC2::AvailabilityZone::Name",
        "Description" : "Select the Availability Zone"
    }

},
"Resources": {
    "Server": {
        "Type": "AWS::EC2::Instance",
        "Properties": {
            "AvailabilityZone": {
                "Ref": "AvailabilityZone"
            },


            "DisableApiTermination": "FALSE",
            "ImageId": {
                "Fn::FindInMap": [ "AWSRegionArch2AMI", {
                    "Ref": "AWS::Region"
                }, "64"]
            },
            "InstanceType": {
                "Ref": "InstanceType"
            },
            "KeyName": {"Ref": "SSHKeyName"},
            "Monitoring": "false",
            "NetworkInterfaces" : [
                {
                    "AssociatePublicIpAddress": false,
                    "DeleteOnTermination": true,
                    "DeviceIndex": "0",
                    "SubnetId": {"Ref": "SubnetId"},
                    "GroupSet": [ {"Ref": "SecurityGroupIds"} ]
                }
            ],

Не могу ли я запустить экземпляр без публичного IP-адреса, как в «Настройка сведений об экземпляре» в «Мастере запуска экземпляра»?

спасибо

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Я столкнулся с этой ошибкой всего пару недель назад, когда намокали ноги в CloudFormation.В моем случае я отбросил общедоступный IP-адрес для интерфейса в пользу только частного IP-адреса, но у меня все еще был настроен выходной сигнал в шаблоне CloudFormation, который ссылался на уже не существующий атрибут publicid.Удаление этого вывода из шаблона устранило мою проблему.

0 голосов
/ 15 ноября 2018

Возможно, вы пытаетесь выполнить Fn :: GetAtt для логического идентификатора экземпляра, чтобы получить PublicIp где-то в вашем коде, а экземпляру не присвоен PublicIp.

0 голосов
/ 02 июня 2018

У вас включена опция «Автоматически назначать публичный IP» для подсети, в которой вы пытаетесь создать экземпляр?Поскольку вы явно не связываете общедоступный IP-адрес, он может завершиться сбоем, так как ресурс ожидает присвоения общедоступного IP-адреса.Безошибочный способ проверить это - установить для параметра SubnetId идентификатор подсети, которая автоматически не назначает общедоступные IP-адреса при развертывании стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...