< p>以下是给您一个想法的示例模板。< / p>
&LT p为H.;<强> Master.yaml:其中/强>< / p为H.
<预><代码>资源:
Cloudspan:
键入:" AWS :: CloudFormation :: Stack"
属性:
参数:
LambdaName:Cloudspan
BucketName:< BucketName>
S3KeyName:< S3KeyName>
FunctionName:< FunctionName>
TemplateURL:< TemplateURL>
对准:
键入:" AWS :: CloudFormation :: Stack"
属性:
参数:
LambdaName:对齐
BucketName:< BucketName>
S3KeyName:< S3KeyName>
FunctionName:< FunctionName>
TemplateURL:< TemplateURL>
< /代码>< /预>
&LT p为H.;<强>λ-child.yaml:其中/强>< / p为H.
<预><代码>参数:
LambdaName:
类型:字符串
BucketName:
类型:字符串
S3KeyName:
类型:字符串
FunctionName:
类型:字符串
资源:
LambdaFunction:
键入:" AWS :: Lambda :: Function"
属性:
处理程序:!Sub' $ {LambdaName} - {FunctionName} .Handler'
角色:
Fn :: GetAtt:[' LambdaExecutionRole',Arn]
码:
S3Bucket:!Sub' $ {LambdaName} {BucketName}'
S3Key:!Sub' $ {LambdaName} {S3KeyName}'
运行时:" python3.6"
< /代码>< /预>
<强> FN ::导入强>
您可以将参数“导出”为一个堆栈的输出,然后任何堆栈都可以访问整个帐户中的这些值。这可能比您正在寻找的更开放,但如果您的最终目标是让堆栈共享变量,那么导出输出并使用Fn::Import
引用它们就可以实现。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html
还没有办法将每个参数一次从根堆栈传递到嵌套堆栈。如果要传递每个参数,则必须按照Sudharsan Sivasankaran的答案中给出的模板逐个传递。