![](/img/trans.png)
[英]How can I extract the kubernetes Service object from JSON returned from kubectl
[英]How can I efficiently extract variables from JSON with xonsh?
給定一個變量AWS_ASSUMED_ROLE
,其中包含 output 的aws sts assume-role
(一個 JSON 字符串),我可以在bash
中編寫以下內容。
export AWS_ACCESS_KEY_ID=$( jq -r '.Credentials.AccessKeyId' <<<$AWS_ASSUMED_ROLE )
export AWS_SECRET_ACCESS_KEY=$( jq -r '.Credentials.SecretAccessKey' <<<$AWS_ASSUMED_ROLE )
export AWS_SESSION_TOKEN=$( jq -r '.Credentials.SessionToken' <<<$AWS_ASSUMED_ROLE )
aws sts get-caller-identity
但是,為了在xonsh
中獲得相同的功能,我需要兩個echo
命令。
$AWS_ACCESS_KEY_ID = $( echo -n @$( echo @(AWS_ASSUMED_ROLE) | jq -r '.Credentials.AccessKeyId') )
$AWS_SECRET_ACCESS_KEY = $( echo -n @$( echo @(AWS_ASSUMED_ROLE) | jq -r '.Credentials.SecretAccessKey' ) )
$AWS_SESSION_TOKEN = $( echo -n @$( echo @(AWS_ASSUMED_ROLE) | jq -r '.Credentials.SessionToken' ) )
aws sts get-caller-identity
內部一個為jq
提供輸入數據。 外部的能夠使用字符串值設置相應的環境變量而無需換行。
好吧,有點尷尬,但還不算太糟。 但是,有更好的方法嗎?
jq
是一個很棒的工具——不過,對於xonsh
的這種特殊情況,我會json
模塊。 假設AWS_ASSUMED_ROLE
是一些字符串化的 json blob:
import json
blob = json.loads(AWS_ASSUMED_ROLE)
$AWS_ACCESS_KEY_ID = blob["Credentials"]["AccessKeyId"]
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.