amazon-web-services - 在 aws cloudformation 期间找不到资源的属性 publicip
问题描述
我对 aws cloudformation 很陌生,我尝试在私有 VPC 中安装 Neo4j 启动 EC2,我发现有人已经使用 Neo4j 创建了 cloudformation 模板,但该实例是用于公共 VPC,所以我有修改了模板以适合我的目的,但是当我启动它时遇到了这个问题:'找不到资源的属性 publicip'
这是脚本的一部分(没有 neo4j bash 脚本和 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 地址的实例吗?
谢谢你
解决方案
您是否为尝试在其中创建实例的子网启用了“自动分配公共 IP”选项?因为您没有明确关联公共 IP 地址,所以它可能会失败,因为资源需要分配一个公共 IP 地址。测试这一点的可靠方法是将SubnetId
参数设置为在部署堆栈时不会自动分配公共 IP 地址的子网的 ID。
推荐阅读
- ios - Google 登录 IOS Swift 4 AppDelegate 错误
- xml - xsd - 如何处理属性
- python - ValueError:需要超过 1 个值才能解压(目录)
- django - 在 Django 中按整数字段的内容搜索
- java - 我们如何在不使用 catalina.properties 的情况下将属性传递给 tomcat 上下文,或者是否有更好的方法来注入属性?
- php - 更改 Woocommerce 存款插件付款计划中的百分比小数精度
- nginx - 在 AWS EC2 (Ubuntu 16 AMI) 中使用 nginx 作为代理设置 neo4j
- sql-server - Django DecimalField 不尊重 max_digits 并导致缓冲区溢出/截断
- firebase - firebase 数据库:从 CLI 更新 - 一个项目中的多个数据库
- java - 如何更新卡片视图列表中存在的特定文本视图