gpt4 book ai didi

aws-cloudformation - 从值动态创建资源名称

转载 作者:行者123 更新时间:2023-12-03 07:25:44 25 4
gpt4 key购买 nike

我的最终目标是从 cloudformation 脚本创建策略文档。我想要一个脚本,其中选择参数并在资源名称中使用该值。

“arn:aws:dynamodb:us-east-1:12345678:table/monit-${dev}/stream/*”

其中 ${dev} 是参数值

参数:
环境:
默认值:开发
描述:用于环境标记。
类型:字符串
允许值:
- 开发者
- TST
- 质量保证
- STG
-prd

我想尝试类似以下的操作,但不知道如何从参数添加引用环境,或者还有其他方法吗?

'Fn::Sub': 'arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}'

所以我最终不必创建一堆不同的脚本

    PolicyDocument:
Statement:
- Effect: Allow
Action:
- dynamodb:DescribeStream
- dynamodb:GetRecords
- dynamodb:GetShardIterator
- dynamodb:ListStreams
- dynamodb:Scan
#This will need to changed for other tables
Resource:
- "arn:aws:dynamodb:us-east-1:12345678:table/monit-dev/stream/*"
- "arn:aws:dynamodb:us-east-1:12345678:table/monit-dev"

最佳答案

如果我理解正确,您可以使用 Fn::Join 添加“环境”值。您不使用其自身值的 Ref。

内部函数 Ref 返回指定参数或资源的值。

当您指定参数的逻辑名称时,它会返回该参数的值。当您指定资源的逻辑名称时,它会返回一个通常可用于引用该资源的值,例如物理 ID。

json 示例:

    "CustomInstanceProfileArn": {
"Fn::Join": [
"", ["arn:aws:iam::", {
"Ref": "AWS::AccountId"
},
":instance-profile/", {
"Ref": "InstanceProfile"
}
]
]
},

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html

关于aws-cloudformation - 从值动态创建资源名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44355898/

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