Ich habe eine Instanz Ressource wie solche:AWS Cloudformation - Teile Benutzerdaten Skript cfn-init über EC2S
testservice:
Type: 'AWS::EC2::Instance'
Metadata:
AWS::CloudFormation::Init:
configSets:
serviceConfigSet:
- serviceConfig
serviceConfig:
packages:
yum:
salt-minion: []
commands:
hostnameConfig:
command: hostname test-service-1.0
services:
sysvinit:
salt-minion:
enabled: 'true'
ensureRunning: 'true'
Properties:
ImageId: !Ref BaseServiceAmi
KeyName: test_ssh_key
SubnetId: !Ref ServiceSubnetId
UserData:
'Fn::Base64':
'Fn::Sub': |
#!/bin/bash
yum update -y
yum install -y aws-cfn-bootstrap
/opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource testservice --configsets serviceConfigSet --region ${AWS::Region}
Allerdings mag ich das UserData
Skript in einen Parameter bewegen und es über mehr Instanz wiederverwenden Ressourcen. Das sollte trivial sein, aber ich finde keinen Weg, den Namen der aktuellen Ressource in das Benutzerdatenskript zu bekommen (ich habe es explizit in diesem Teil gesetzt: --resource testservice
).
Gibt es eine Möglichkeit, ich kann den Ressourcenname über Verweis aus dem Benutzerdatenskript erhalten, so dass ich es verallgemeinern kann? Es erscheint nicht in der Liste der Pseudo-Parameter.