2017-01-13 12 views
11

मैं नीचे का उपयोग कर रहा stack information मैं एडब्ल्यूएस Cli के माध्यम से चाहते हैं:एडब्ल्यूएस cloudformation से हो रही आउटपुट का वर्णन-स्टैक्स

aws cloudformation --region ap-southeast-2 describe-stacks --stack-name mystack 

यह लौटा रहा है परिणाम ठीक है:

{ 
    "Stacks": [ 
     { 
      "StackId": "arn:aws:mystackid", 
      "LastUpdatedTime": "2017-01-13T04:59:17.472Z", 
      "Tags": [], 
      "Outputs": [ 
       { 
        "OutputKey": "Ec2Sg", 
        "OutputValue": "sg-97e13dff" 
       }, 
       { 
        "OutputKey": "DbUrl", 
        "OutputValue": "myUrl" 
       } 
      ], 
      "CreationTime": "2017-01-13T03:27:18.893Z", 
      "StackName": "mystack", 
      "NotificationARNs": [], 
      "StackStatus": "UPDATE_ROLLBACK_COMPLETE", 
      "DisableRollback": false 
     } 
    ] 
} 

लेकिन मैं नहीं जानता कि आउटपुट वैल्यू का केवल मूल्य कैसे वापस करें जो myUrl

जैसा कि मुझे बाकी की आवश्यकता नहीं है, बस myUrl।

क्या यह क्लाउडफॉर्मेशन वर्णन-ढेर के माध्यम से संभव है?

संपादित

मैं सिर्फ मैं उपयोग कर सकते हैं एहसास - query:

--query 'Stacks[0].Outputs[1].OutputValue' 

मैं वास्तव में क्या चाहते हैं, लेकिन मैं DbUrl उपयोग करना चाहते हैं मिल जाएगा किसी और यदि आउटपुट परिवर्तन की संख्या, मेरे परिणाम अप्रत्याशित होगा।

उत्तर

18

मैं इस सवाल का जवाब मिल गया है, नीचे का उपयोग करें:

--query 'Stacks[0].Outputs[?OutputKey==`DbUrl`].OutputValue' --output text 

आशा इस किसी की मदद करेंगे।

+0

धन्यवाद, यह वही है जो मैं आज के लिए देख रहा था। – user1432403

+0

बस किसी और के लिए, मुझे '' '' '' '' '' '' '' '' – Tobin

1

काम पूछताछ करते समय, यदि आपके पास एकाधिक ढेर हैं तो यह समस्याग्रस्त साबित हो सकता है। वास्तव में, आपको शायद विशिष्ट और आधिकारिक चीजों के लिए निर्यात का लाभ उठाना चाहिए।

उदाहरण के द्वारा - अगर आप अपने CloudFormation स्निपेट इस तरह दिखना करने के लिए संशोधित:

"Outputs" : { 
    "DbUrl" : { 
    "Description" : "My Database Url", 
    "Value" : "myUrl", 
    "Export" : { 
     "Name" : "DbUrl" 
    } 
    } 
} 

तो फिर तुम इस्तेमाल कर सकते हैं:

aws cloudformation list-exports --query "Exports[?Name==\`DbUrl\`].Value" --no-paginate --output text 

इसे पुनः प्राप्त करने। निर्यात अद्वितीय होने की आवश्यकता है - केवल एक स्टैक किसी भी दिए गए नाम को निर्यात कर सकता है। इस तरह, आपको आश्वस्त किया जाता है कि आपको हर बार सही मूल्य मिलता है। यदि आप एक नया स्टैक बनाने का प्रयास करते हैं जो किसी ऐसे नाम को निर्यात करता है जो पहले से मौजूद है, तो स्टैक निर्माण विफल हो जाएगा।

संबंधित मुद्दे