0

J'ai un script CloudFormation qui crée 2 instances - un serveur Aurora RDS et une instance EC2 qui l'utilisera. J'ai besoin d'utiliser l'adresse IP de l'Aurora dans mon script d'initialisation pour l'instance EC2 afin que je puisse semer la base de données. Donc Aurora doit être opérationnel avant l'exécution de mon script d'initialisation sur EC2. L'autre chose est que j'ai besoin de l'adresse IP.Récupère l'adresse IP Aurora et l'utilise dans UserData pour une autre instance dans AWS CloudFormation

"UserData"   : { 
    "Fn::Base64" : { 
     "Fn::Join" : [ 
      "", 
      [ 
       "<script>\n", 
       "seedtool.exe ", { "Ref" : "MyAuroraDbInstance::InternalIP" }, "\n", 
       "</script>\n" 
      ] 
     ] 
    } 
}, 

Donc ma question est, qu'est-ce que je mets à la place de MyAuroraDbInstance::InternalIP dans le script ci-dessus?

+0

Vous ne devriez jamais essayer d'utiliser une adresse IP directement pour une instance/cluster RDS. Pour Aurora, vous devez utiliser les points de terminaison de cluster en lecture/écriture. –

Répondre

3

Utilisez Fn :: GetAtt sur DBInstance et demandez un attribut de Endpoint.Address. Cela ne donnera pas d'IP, il donnera un CNAME

+2

Pour ajouter à cette réponse, n'utilisez pas directement l'adresse IP. Au lieu de cela, utilisez le CNAME que 'Fn :: GetAtt' vous donne. –