gpt4 book ai didi

amazon-web-services - 默认值 AWS 替换为伪参数引用

转载 作者:行者123 更新时间:2023-12-02 19:26:05 25 4
gpt4 key购买 nike

我在 aws cloudformation 模板中有一个参数

 Parameters:
ExecRole:
Type: String
Description: Required. Lambda exec role ARN
Default: arn:aws:iam::123456789:role/lambdaExecRole

假设123456789是AcountId我想使用伪参数引用但我做不到,我尝试了以下方法但没有成功

Default: arn:aws:iam::!Ref{AWS::AccountId}:role/exLambdaExecRole
Default: !Sub 'arn:aws:iam::${AWS::AccountId}:role/exLambdaExecRole'

在最后一种情况下,我抛出了一个错误

Default member must be a string.

最佳答案

Parameters 的默认值似乎不支持函数(例如 !Sub)。

这是我们正在使用的解决方法。

我们有一个名为Parameters的单独堆栈,它导出其他堆栈中所需的任何参数。例如:

Outputs:
VpcId:
Description: Id of the VPC.
Value: !Ref VpcId
Export:
Name: !Sub 'stk-${EnvType}-${EnvId}-VpcId'

在其他堆栈中,我们只需导入这些导出的值:

  VpcId: !ImportValue
'Fn::Sub': 'stk-${EnvType}-${EnvId}-VpcId'

EnvTypeEnvId 对于一个环境的所有堆栈都是相同的。

对于角色,您可能需要执行以下操作。创建一个单独的 Roles 模板,在其中实现您的角色并导出其 ARN:

Outputs:
LambdaExecutionRoleArn:
Description: ARN of the execution role for the log-and-pass function.
Value: !GetAtt
- LambdaExecutionRole
- Arn
Export:
Name: !Sub 'stk-${EnvType}-${EnvId}-roles-LambdaExecutionRole-Arn'

同样,在其他堆栈中,您可以简单地ImportValue:

    Role: !ImportValue
'Fn::Sub': 'stk-${EnvType}-${EnvId}-roles-LogAndPassFunctionExecutionRole-Arn'

关于amazon-web-services - 默认值 AWS 替换为伪参数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62395211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com