ソリューション:ymlは使用しないでください。CloudFormationのパラメータファイルを渡すことがYMLで機能しない
私はaws cloudformation stack-create
コマンドと共にdb名とdbパスワードを保持するパラメータを渡そうとしています。私は全体的に意味をなさないエラーを取り戻す。
Value of property MasterUsername must be of type String
は今、知っている一つのことは、私は文字通りパスワードを見ることができ、ユーザ名が設定されたものとしてコンソールに戻ってくるので、私は、コンソールへのアクセスを持っているということです。彼らはどちらも私の弦のように見えます。
YAMLバージョン
私はこのようなテンプレートでスタックを定義している:私はこれを持って私の.env
ファイルの内部
Parameters:
DBUser:
Description: db user
Type: String
MinLength: '4'
MaxLength: '16'
AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
ConstraintDescription: some description
DBPass:
Description: db password
Type: String
MinLength: '8'
MaxLength: '36'
AllowedPattern: '[a-zA-Z0-9]*'
ConstraintDescription: must contain only alphanumeric characters
Resources:
AppNode:
(...)
DatabaseInstance:
Type: AWS::RDS::DBInstance
Properties:
DBName: app
DBInstanceClass: db.t2.micro
Engine: postgres
EngineVersion: 10
MasterUsername:
- !Ref DBUser
MasterUserPassword:
- !Ref DBPass
DatabaseSG:
Type: AWS::RDS::DBSecurityGroup
Properties:
GroupDescription: Security Group for RDS public access
DBSecurityGroupIngress:
- CIDRIP: 0.0.0.0/0
:
[
{
"ParameterKey": "DBUser",
"ParameterValue": "root"
},
{
"ParameterKey": "DBPass",
"ParameterValue": "mydbpassword"
}
]
私はこれを実行しますコマンド:
aws cloudformation create-stack --stack-name app --template-body file://$PWD/stack.json --region us-west-2 --parameters file://$PWD/.env.json
ファイルタイプは
です。
最初に気になることは、それらの値を空白にしている可能性があることです。テンプレートやパラメータを渡さないと、別のエラーがスローされるからです。
An error occurred (ValidationError) when calling the CreateStack operation: Parameters: [DBUser, DBPass] must have values
AWSは文字列の内容やここで何が起こっているのかを再定義しましたか?
YMLでこのコマンドを実行していないので、実際のJsonスタックを使用して表示することはできますか? –