0

Je suis en train de former un texte avec /. voici mon code CloudFormation:obtenir question contrainte lorsque je tente d'utiliser/et la fonction sous ensemble

Resources: 
    KeyAlias: 
    Type: AWS::KMS::Alias 
    DependsOn: KMSKey 
    Properties: 
     AliasName: alias/!Sub ${project}-${EnvironmentApp} 
     TargetKeyId: 
     Ref: KMSKey 

Je reçois une erreur de validation de contrainte sur cette ligne:

AliasName: alias/!Sub ${project}-${EnvironmentApp} 

Apparemment cfn n'aime pas/il. Cependant, lorsque je remplace la sous-fonction avec quelque chose de statique comme:

"AliasName": alias/test 

Aussi quand j'utilise joindre comme suit:

 AliasName: 
     - Fn::Join: 
      - "/" 
      - - 'alias' 
      - Ref: project 
      - Ref: EnvironmentApp 

Je reçois l'erreur suivante:

Valeur de la propriété AliasName doit être du type String

Comment puis-je obtenir ce qui précède et passer la question de la contrainte? Ou est-ce possible?

Répondre

1

Essayez d'utiliser la sous-fonction intrinsèque comme suit (non testé)

AliasName: !Sub 
    - alias/${project}-${EnvironmentApp} 
    - { project: !Ref project, EnvironmentApp: !Ref EnvironmentApp} 

Sur la base des documents CloudFormation pour AWS::KMS::Alias, vous doit inclure la /

Aussi, vous n'avez pas besoin DependsOn dans ce cas puisque KMSKey est référencé dans le TargetKeyId

+0

Oui, il a travaillé si c'est le suivant: - {projet: Ref, EnvironmentAp! p:! Ref EnvironmentApp}? Project et EnvironmentApp sont des paramètres que je reçois de l'utilisateur alors maintenant je suis confus si j'utilise sub alors le remplacement devrait arriver pourquoi avons-nous besoin - {project:! Projet Ref, EnvironmentApp:! Ref EnvironmentApp} –

+0

Je suis allé basé sur le [Sub documentation ] (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html#w2ab2c21c28c56c11). Vous pouvez également essayer quelque chose comme 'AliasName: alias Sub/$ {} projet - $ {EnvironmentApp}' Je pense que votre problème initial était d'avoir 'alias /' avant d'utiliser 'Sub'! – tkwargs