在Cloudformation中引用属性的正确方法是什么?

时间:2019-06-11 12:59:02

标签: amazon-web-services yaml amazon-cloudformation

一个简单的问题。我想要目录服务的简称,以便我可以在CFN文件中的其他地方引用netbios名称。

当前仅使用一个参数来输入它,这样我以后就可以重用...但是该短名称默认为域名的第一部分(例如example.com,该短名称自动是example,这就是我想要)

问题是,如果我不将其作为参数输入,我不知道如何仅引用它。.

是否存在!Ref mydirectory.shortname的任何语法?我无法找到/找到任何信息

myDirectory:
Type: AWS::DirectoryService::MicrosoftAD
Properties:
  Name:
    Ref: directoryName
  Password: 
    Ref: MicrosoftADPW
  ShortName:
    Ref: ${NetBIOSName}
  Edition: Standard
  VpcSettings: 
    SubnetIds: 
      - !Ref PrivateSubnetA
      - !Ref PrivateSubnetB
    VpcId: !Ref VPC

1 个答案:

答案 0 :(得分:2)

您应该可以使用Fn::SplitFn::Select函数来做到这一点(我没有测试过,并且通常不使用YAML语法,因此可能并不准确):

!Select ["0", !Split[".", !Ref FullyQualifiedName ]]

但是,我认为这是解决问题的错误方法,尤其是当您必须在多个地方使用简称时。

相反,我将创建两个参数,一个用于域名,一个用于主机名(您称为短名称)。然后使用Fn::Sub组合它们:

!Sub "${HostName}.${DomainName}"