sparse-intern-71089
08/21/2020, 8:24 PMbillowy-army-68599
billowy-army-68599
damp-secretary-81951
08/21/2020, 8:57 PMpulumi.Config()
, but I’m not sure how to grab the CloudFormation StackName from an AutoScalingGroup b/c it needs to be interpolated in userData
, which gets passed to the AutoScalingGroup constructor.
const userData =
`#!/bin/bash
/usr/local/bin/cfn-signal --stack ${output of autoScalingGroup.stack.name...}`
const autoScalingGroup = new awsx.autoscaling.AutoScalingGroup("name", { userData });
This feels like a circular reference and I’m not sure how to accomplish it.billowy-army-68599
billowy-army-68599
let userData = Buffer.from(`#!/bin/bash
STACK_NAME=$(aws ec2 describe-instances --instance-id $(curl -s <http://169.254.169.254/latest/dynamic/instance-identity/document> | jq .instanceId -r) --region eu-west-1 --query 'Reservations[*].Instances[*].Tags[?Key==\`aws:cloudformation:stack-name\`].Value' --output text)
REGION=$(curl -s <http://169.254.169.254/latest/dynamic/instance-identity/document> | jq .region -r)
ASG_NAME=$(aws ec2 describe-instances --instance-id $(curl -s <http://169.254.169.254/latest/dynamic/instance-identity/document> | jq .instanceId -r) --region eu-west-1 --query 'Reservations[*].Instances[*].Tags[?Key==\`aws:autoscaling:groupName\`].Value' --output text)
echo "sending cfn-signal"
/opt/aws/bin/cfn-signal --resource \${ASG_NAME} --stack \${STACK_NAME} --region \${REGION}`).toString('base64');
billowy-army-68599
damp-secretary-81951
08/21/2020, 9:01 PMbillowy-army-68599
damp-secretary-81951
08/21/2020, 9:04 PM