ทำไมฉันถึงเห็นเป็น'ทำไม่ได้เจอคาดหวังโหนดเนื้อหา'เมื่อ implementing นี้เงื่อนไขภายใน Cloudformation?

0

คำถาม

ฉันต้องการที่จะดึงข้อมูแตกต่าง resourceRecords ขึ้นอยู่กับว่าสภาพของฉันเป็นความจริงอื่นเปลี่ยนข้อความหาคนชื่ออะไรอย่างอื่น นี่คือของฉันตัวอย่าง:

myDNSresource:
    Type: AWS::Route53::RecordSet
    Condition: devEnv
    Properties:
      HostedZoneName: {"Fn::ImportValue": !Sub "${stackName}-${AWS::Region}-dnsZone"}
      Name: !Join [".", [!Ref hostname, {"Fn::ImportValue": !Sub "${stackname}-${AWS::Region}-dnsZone"}]]
      Type: CNAME
      TTL: 130
      ResourceRecords:
        - !If [conditionIsTrue, !Join [".", [{"Fn::ImportValue": !Sub "${accountStackName}-${AWS::Region}-dnsZone"}]],
            - !Join
            - ""
            - - !GetAtt
              - domainName
              - regionalValue
              - "." 
        ]

ฉันต้องวิ่ง cfn-เศษอะไรติและฉันเห็นข้อผิดพลาดเกิดขึ้นระหว่างเกี่ยวกับ did not find expected node content แค่ก่อน !Join คำสั่งโดยตรงหลังจากของฉัน !If การปราศรัยได้เลย ฉันทำตามเงื่อนไขสูตรของ->

!If [condition_name, value_if_true, value_if_false]

ขอบคุณ

1

คำตอบที่ดีที่สุด

1

ใน LANGUAGE,เลื่อนไหลในรูปแบบโหนดต่างๆ(i.e. […], {…})ไม่สามารถมีอักษรบล็อค-รูปแบบโหนดต่างๆ(i.e. งทุกอย่างมัน structured กับระยะเยื้อง). แล้วคุณมีหลายของสิ่งก่อนสร้างนั่นไม่สมเหตุสมผลเลยนะ e.g.

- !Join
- ""

นี่ยังรายการแรกคือกับติดป้ายกำกับ@action:inmenu !Join แต่ช่องว่างเพื่อจะไม่มีอะไรเข้ามา เธอก็เช่นกัน

- !GetAtt
- domainName

ผู้เขียนใหม่ซึ่งดูเหมือนจะมีเหตุผลเลนจะเป็น

- !If
  - conditionIsTrue
  - !Join [".", ["Fn::ImportValue": !Sub "${accountStackName}-${AWS::Region}-dnsZone"]]
  - !Join
    - ""
    - !GetAtt
      - domainName
      - regionalValue
      - "." 

อย่างที่คุณเห็นฉันทำภายใน {…} เพราะ LANGUAGE สนับสนุน [a: b] ที่ช่วยย่อมันสำหรับเครื่องหมายไว้ที่ปฎิทิน [{a: b}].

ถ้าคุณต้องการจะใช้เลื่อนไหลในรูปแบบโหนดต่างๆคุณต้องการจะให้เรื่องโหนดต่างๆซึ่งอยู่ไหลเวียนในรูปแบบ:

- !If [
    conditionIsTrue, 
    !Join [
      ".",
      ["Fn::ImportValue": !Sub "${accountStackName}-${AWS::Region}-dnsZone"]
    ],
    !Join ["", !GetAtt [domainName, regionalValue, "."]]
  ]
2021-11-22 18:44:14

ขอบคุณอย่างไรก็ตามหลังจากต่อไปนี้ของคุณตัวอย่างเช่นฉันยังเห็นภาพเดียวกันเหมือนไม่มีปัญหาอยู่เลยสินะ แล้วคุณพูดอย่างนั้น-GetAtt-domainName จะไม่ยอมทำทุกอย่าย่างไรก็ตามมันเป็น obtaitning ค่าของ domainName และใช้มันเป็นชื่อของทรัพยากรระวัติ คุณต้องการกำหนดตัวแบ่งเขตด้านซ้ายกับผู้เข้าร่วมกับแถลงการณ์ดังนั้นที่ว่าทำไม""เป็นเรื่องตรงหลังจากมัน
i'i'i'i'i'i'i'i'i'i

@ฉัน 'i 'i 'i 'i 'i 'i 'i 'i 'i คุณเข้าใจผิดจุดประสงค์ของผม สำหรับ !GetAttr ต้องทำบางอย่างมันคงจะสมัครจะคอนโหนดที่มีค่าชื่อ ในของคุณรหัส !GetAttr ใช้กับว่าจุดเชื่อมต่อซึ่งเป็นส่วนหนึ่งของลำดับและยังรายการถัดไปในลำดับคือ domainName –ซึ่งมันไม่เห็นโดย !GetAttr. เปรียบเทียบนั้นกับคำแนะนำของฉันอยู่ไหน !GetAttr ใช้กับทั้งลำดับที่บรรจุ domainName เป็นต้น btw, ที่ docs ขอแนะนำให้คุณอาจจะต้องทำ !GetAttr domainName.regionalValue
flyx

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่