2016-06-13 16 views
0

.ebextensions.configファイルを書き込む際に、Amazonは例えば、これらの二つの構成が同一であり、長いとショートフォームのエントリーが可能になります:省略形option_settingsをboto3で使用することはできますか?

ロング形式:

"option_settings": [ 
    { 
     'Namespace': 'aws:rds:dbinstance', 
     'OptionName': 'DBEngine', 
     'Value': 'postgres' 
    }, 
    { 
     'Namespace': 'aws:rds:dbinstance', 
     'OptionName': 'DBInstanceClass', 
     'Value': 'db.t2.micro' 
    } 
] 

ショートフォーム:

"option_settings": { 
    "aws:rds:dbinstance": { 
    "DBEngine": "postgres", 
    "DBInstanceClass": "db.t2.micro" 
    } 
} 

しかし、すべての私が見た構成のうちonly specify using a long form with boto3

response = eb_client.create_environment(
... trimmed ... 
    OptionSettings=[ 
     { 
      'Namespace': 'aws:rds:dbinstance', 
      'OptionName': 'DBEngineVersion', 
      'Value': '5.6' 
     }, 
... trimmed ... 
) 

ショートフォームのエントリがboto3の辞書を使用することはできますか?

ボーナス:そうでなければ、どうしてですか?

+1

、boto3は現在、長い形式を解析します。簡略化のために、誰かが短縮形と完全な形式の両方を扱うコードをプッシュするまでは不可能です。 – mootmoot

答えて

2

試行錯誤の結果いいえ、ショートフォーム構成タイプは使用できません。他の場所で次に

def short_to_long(_in): 
    out = [] 
    for namespace,key_vals in _in.items(): 
     for optname,value in key_vals.items(): 
      out.append(
       { 
        'Namespace': namespace, 
        'OptionName': optname, 
        'Value': value 
       } 
      ) 
    return out 

を:あなたが説得力のその種である場合に

ただし、これを行うことができますそれは簡単です

response = eb_client.create_environment(

    OptionSettings=short_to_long({ 
     "aws:rds:dbinstance": { 
     "DBDeletionPolicy": "Delete", # or snapshot 
     "DBEngine": "postgres", 
     "DBInstanceClass": "db.t2.micro" 
     }, 
    }) 
関連する問題