amazon-web-services - 尝试通过 CloudFormation 创建 SG 和 RDS 时显示“无效的安全组”
问题描述
我制作了以下简单的 CloudFormation 模板。它尝试创建一个安全组和一个 RDS,其中 RDS 使用创建的安全组作为其安全组配置。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
TestDBMasterUserPassword:
Type: String
NoEcho: true
Resources:
TestDB:
Type: 'AWS::RDS::DBInstance'
Properties:
Engine: mysql
DBInstanceClass: db.t2.micro
AllocatedStorage: 20
MasterUsername: root
MasterUserPassword: !Ref TestDBMasterUserPassword
VPCSecurityGroups:
- !Ref TestDBSecurityGroup
TestDBSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupDescription: Security Group for TestDB
从该模板创建堆栈会导致错误,如下所示:
16:58:43 UTC+0900 CREATE_FAILED AWS::RDS::DBInstance TestDB Invalid security group , groupId= inoue-test-stack-testdbsecuritygroup-10t6gvze4gs5k, groupName=. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterValue; Request ID: 16c7e4c5-9201-4dc7-b5b4-8f536c6b807d)
我无法弄清楚为什么会发生这样的错误..
问题:
- 这个简单的云形成模板有什么问题?
- 如何创建指定的安全组并将其分配给 CloudFormation 上的 RDS?
解决方案
当您!Ref AWS::EC2::SecurityGroup
在VPCSecurityGroups
属性中执行此操作时,这将返回安全组的名称而不是 ID,这是VPCSecurityGroups
属性所需要的。尝试- Fn::GetAtt: [ TestDBSecurityGroup, GroupId ]
改用。
推荐阅读
- c++ - SFINAE 在 decltype 中使用范围解析运算符
- flutter - FlutterBarcodeScanner 成功扫描二维码后导航失败
- python - 单击日历时在 Models.py 中创建单独的日期/时间字段,如果尝试选择日期,它会选择该字段保持为空的值
- powershell - 在一个脚本中使用不同的命令运行多个 powershell 窗口
- deployment - Tomcat 管理器启动时间过长
- python - Python将指针移动到.txt中的特定列
- sql - Oracle sql - 获取两个日期之间的月份ID
- unreal-engine4 - UE4 如何在无光照模式下运行游戏
- python - 如何基于另一个数组创建数组?
- javascript - 当我在卡片列表上使用水平(向右)滚动时,CSS悬停在卡片上没有按预期工作