0

コードを掘り下げて(たとえば、これを考えてみてください)、次を使用して属性を読み取ることができることがわかりました。

instance.block_device_mapping['/dev/sdz'].delete_on_termination

...そして以下を使用して切り替えます:

instance.modify_attribute('blockdevicemapping', ['/dev/sdz=1']) # toggle on
instance.modify_attribute('blockdevicemapping', ['/dev/sdz']) # toggle off

しかし、それは非対称であり、私はいくつかのより高いレベルの機能が欠けているように感じます。

それはもっと似ているべきではありません:

block_device_type = instance.block_device_mapping['/dev/sdz']
block_device_type.delete_on_termination = True
block_device_type.save() # I made this API up

4

1 に答える 1

3

フォーマットされた文字列のリストを使用して、この設定のオンとオフを切り替えます'%s=%d'

オンに切り替えます

>>> inst.modify_attribute('blockDeviceMapping', ['/dev/sda1=1'])

オフに切り替えます

>>> inst.modify_attribute('blockDeviceMapping', ['/dev/sda1=0'])

以下を使用して設定を変更しようとするたびに、Python以外での変更を確認しました。

$ aws ec2 describe-instance-attribute --instance-id i-7890abcd --attribute blockDeviceMapping
  1. inst.modify_attribute('blockDeviceMapping', ['/dev/sda1'])(文字列に欠けている)を呼び出し=0ても、何の変化も生じませんでした。
  2. に割り当ててinst.block_device_mapping['/dev/sda1'].delete_on_terminationも変更はありませんでした。

を呼び出した後、ローカルブロックデバイスオブジェクトmodify_attributeのの値は変更されません。delete_on_termination


プロセス全体を次の場所で説明します:http:
//f06mote.com/post/77239804736/amazon-ec2-instance-safety-tweak-turn-off-delete-on

于 2014-02-20T03:47:18.643 に答える