Amazon web services 连接导入值和参数存储值
我正在尝试连接从另一个CF脚本导出的值和参数存储中的参数 我有两个CF脚本,其中Script-A输出一个值,如下所示Amazon web services 连接导入值和参数存储值,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我正在尝试连接从另一个CF脚本导出的值和参数存储中的参数 我有两个CF脚本,其中Script-A输出一个值,如下所示 Purpose: Value: !Ref Purpose Description: Purpose Export: Name: !Sub '${AWS::StackName}-${CustomerName}-Purpose' 它还使用客户名称创建一个SSM参数 在第二个脚本中,我想读取“Purpose”并将其作为值提供,同时创建另一个参数
Purpose:
Value: !Ref Purpose
Description: Purpose
Export:
Name: !Sub '${AWS::StackName}-${CustomerName}-Purpose'
它还使用客户名称创建一个SSM参数
在第二个脚本中,我想读取“Purpose”并将其作为值提供,同时创建另一个参数存储条目
TestVar:
Type: AWS::SSM::Parameter
Properties:
Name: !Sub '/test-var'
Type: String
Value:
Fn::Sub:
- 'abc-'
- !ImportValue '${StackName}-'
- CustomerName:'{{resolve:ssm:CustomerName:1}}'
- '-Purpose'
但我不确定正确的方法是什么
我知道我可以将参数存储值作为CF脚本上的参数导入,但尽量避免硬编码键。使用SSM存储参数需要注意的几点。每次更新该值时,版本号都会增加。目前,没有办法告诉CFN只使用最新版本的SSM存储参数。在模板中使用这些时请记住这一点 好的,首先,如果你想按模板剪的样子做,你需要做一个简单的修改!加入,而不是加入!SUB,也就是说,如果我正在阅读你正在尝试做的正确的事情(需要更多信息,但我还是会尝试一下) 对于以上内容,只需执行以下操作:
KeyName: !Join ['',['kp-','{{resolve:ssm:AccountShortName:1}}','-default']]
如果您试图在脚本块中执行此操作,它看起来更像:
"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
希望这能把事情弄清楚一点。如果没有,请发布更多详细信息,我们或许可以挖掘更多帮助
谢谢 如果您的第一个CF模板首先创建了所需的
AWS::SSM::Parameter
,而不是导出输出,那么将为您节省大量的麻烦。