2

J'ai un template de cloudformation qui contient deux instances avec la propriété userdata.comment obtenir la valeur de sortie de userdata en utilisant le modèle de cloudformation?

J'ai besoin d'extraire les données d'une instance de données d'instance et de les transmettre à une autre instance de données d'utilisateur. Par exemple (ci-dessous), vous devez chercher "test" depuis instance1 et passer à instance2 userdata.

Modèle Exemple:

"instance1": { 
    "Type": "AWS::EC2::Instance", 
    "Properties": { 
"UserData": { 
     "Fn::Base64": { 
     "Fn::Join": [ 
      "", 
      [ 
      "#!/bin/bash\n", 
      "set -x\n", 
      "echo test\n", 
      ]]}}}}, 

"instance2": { 
    "Type": "AWS::EC2::Instance", 
    "Properties": { 
"UserData": { 
     "Fn::Base64": { 
     "Fn::Join": [ 
      "", 
      [ 
      "#!/bin/bash\n", 
      "set -x\n", 
      //fetch the value 
      ]]}}}}, 
+0

Voulez-vous dire que vous voulez récupérer les données de instance1 à l'exécution? (c'est-à-dire lorsque les instances sont en cours d'exécution) – spg

+0

Merci pour votre réponse. oui @spg. au moment de l'approvisionnement de l'infrastructure. – Prakash26790

Répondre

2

Fondamentalement, vous avez 2 options:

  1. Utilisez une sorte de mémoire partagée (ElastiCache, RDS, S3 ....)
  2. scp/ssh directement une autre instance et récupérez les informations dont vous avez besoin.

Je suggère d'utiliser la mémoire partagée par exemple S3:

Sur exemple 1:

echo "test" > /tmp/myfile 
aws s3 cp /tmp/myfile s3://<bucket>/myfile 

Par exemple 2:

aws s3 cp s3://<bucket>/myfile /tmp/myfile 
cat /tmp/myfile