Я новичок во вложенном стеке и пытаюсь передать входные параметры из родительского в дочерний шаблон. Мой родительский стек выглядит следующим образом:
AWSTemplateFormatVersion: "2010-09-09"
Transform: 'AWS::Serverless-2016-10-31'
Description: "ParentStack with all child stack"
Parameters:
AccountName:
Description: Please Enter valid Account Name.
Type: "CommaDelimitedList"
Default: "citi"
Region:
Description: Enter Region
Type: "CommaDelimitedList"
Default: "us-east-2"
S3BucketName:
Type: "CommaDelimitedList"
Default: ""
S3KeyName:
Type: "CommaDelimitedList"
Default: "Test-LambdaFunction.zip"
Resources:
LambdaStack1:
Type: "AWS::CloudFormation::Stack"
Properties:
Parameters:
TemplateURL: https://test272t3.s3.us-east-2.amazonaws.com/CFTemplates/lambda.yaml
CodeUri:
Bucket: Fn:Join [ ' ', [!Ref S3BucketName] ]
Key: Fn::Join [ ' ', [!Ref S3KeyName] ]
S3Stack:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: https://test272t3.s3.us-east-2.amazonaws.com/CFTemplates/s3child.yaml
Parameters:
BucketName: <<not sure how !sub can be paased in parent stack>>
AccessControl: PublicReadWrite
VersioningConfiguration:
Status: Suspended
И часть дочернего шаблона выглядит следующим образом:
Parameters:
AccountName:
Description: Please Enter valid Account Name.
Type: String
Default: citi
Region:
Description: Enter Region
Type: String
Default: us-east-2
S3BucketName:
Type: "String"
Default: ""
S3KeyName:
Type: "String"
Default: "MeghFlow-DBConnMgmt-Lambda-DBConnMgmtFunction.zip"
testLambda:
Type: AWS::Serverless::Function
Properties:
CodeUri:
Bucket: !Ref S3BucketName
Key: !Ref S3KeyName
Handler: com.testff.testinghand.dbconnmgmt.lambda.testLambda::handleRequest
Runtime: java8
MemorySize: 1024
Policies: AmazonDynamoDBFullAccess
Environment:
Variables:
REGION: us-east-2
DYNAMODB_NAME: DBConnectionInfo
ArtifactBucket:
Type: AWS::S3::Bucket
DeletionPolicy: Delete
Properties:
BucketName: !Sub ${AccountName}-${Region}-artifacts
AccessControl: PublicReadWrite
VersioningConfiguration:
Status: Suspended
Проблема: я не совсем уверен, как входные параметры могут быть переданы из родительского ребенку. Я ссылался на несколько ссылок, таких как, но я был смущен еще больше в отношении того, когда тип ввода должен быть CommaDelimitedList против строки. Я даже пытался сохранить тип параметра в строке как родительского, так и дочернего, но все же я получаю ошибку ниже: «Значение свойства Параметры должны быть объектом со свойствами String (или простого типа)» и при использовании Fn :: join получаю ошибку, как показано ниже : «Для объекта Fn :: Join требуются два параметра: (1) разделитель строк и (2) список строк, которые нужно объединить, или функция, которая возвращает список строк (таких как Fn :: GetAZs), которые нужно объединить.»
Ссылка на ссылку: Попытка передать параметры от Мастера к дочернему шаблону , но безуспешно. Может кто-нибудь направить меня в правильном направлении, пожалуйста. Заранее спасибо.