gpt4 book ai didi

amazon-web-services - 连接ImportValue和参数存储值

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

我正在尝试连接从另一个 CF 脚本导出的值和参数存储中的参数。

我有两个 CF 脚本,其中 Script-A 输出如下值,

  Purpose:
Value: !Ref Purpose
Description: Purpose
Export:
Name: !Sub '${AWS::StackName}-${CustomerName}-Purpose'

它还会创建一个包含客户名称的 SSM 参数。

在第二个脚本中,我想读取“目的”并将其作为值提供,同时创建另一个参数存储条目,

  TestVar:
Type: AWS::SSM::Parameter
Properties:
Name: !Sub '/test-var'
Type: String
Value:
Fn::Sub:
- 'abc-'
- !ImportValue '${StackName}-'
- CustomerName:'{{resolve:ssm:CustomerName:1}}'
- '-Purpose'

但我不确定执行此操作的正确方法是什么。

我知道我可以导入 Parameter Store 值作为 CF 脚本上的参数,但尽量避免硬编码键。

最佳答案

使用 SSM 存储参数时需要注意的一些事项。每次更新该值时,版本号都会增加。目前,无法告诉 CFN 仅使用最新版本的 SSM 存储参数。在模板中使用这些内容时请记住这一点。

好的,首先,如果您尝试按照模板片段的方式执行此操作,则需要执行 !JOIN,而不是 !SUB,也就是说,如果我正在阅读您想要做的正确操作(需要更多信息,但无论如何我都会尝试一下)。

对于上面的内容,只需执行以下操作:

        KeyName: !Join ['',['kp-','{{resolve:ssm:AccountShortName:1}}','-default']] 

如果您尝试在脚本 block 中执行此操作,它看起来更像是:

      "AWS::CloudFormation::Init": 
configSets:
configuration:
- InitialSetup
init: # Initialize cfn
files:
'C:\cfn\scripts\SetupDefaults.json':
content: !Sub
- |
{
"StackName": "${AWS::StackName}",
"Region": "${AWS::Region}",
"Resource": "WinServer",
"directoryName": "${AccountShortName}.com",
"Joiner": "${AccountShortName}/ad/joiner"
}
- AccountShortName: '{{resolve:ssm:AccountShortName:1}}'
commands:
InitialSetup: # Initial Setup
files:
'C:\cfn\scripts\Initial-Setup.ps1':
source: !Join
- ''
- - 'https://s3-us-west-2.amazonaws.com/'
- '{{resolve:ssm:binaries-bucket:1}}'
- '/new_web/Initial-Setup.ps1'
authentication: S3AccessCreds
commands:
InitialSetup:
command: >-
powershell.exe -Command "C:\cfn\scripts\Initial-Setup.ps1"
waitAfterCompletion: 0

希望这能让事情变得更清楚。如果没有,请发布更多详细信息,我们也许可以挖掘更多信息来提供帮助。

谢谢!

关于amazon-web-services - 连接ImportValue和参数存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601977/

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