如何使用Boto3传递明确的Null值?

时间:2018-07-18 10:52:39

标签: amazon-web-services boto3 amazon-simple-email-service

是否有一种方法可以使boto3客户端传递带有显式null值的参数(而不是完全省略该参数)?

我正在尝试使用create_recipt_rule on the boto3 SES client添加一个我想成为第一个规则的新收据规则。

AWS API文档(也可以从上面的boto文档中获取)说,这可以通过传递After参数和空值来实现:

  

之后(字符串)-现有规则的名称,新规则将放置在该规则之后。如果此参数为null,则新规则将插入到规则列表的开头

通过测试,我发现它必须以null的形式明确传递。只需省略After参数,规则就会添加到列表的末尾。

我认为我可以通过使After参数与exp None值一起出现来传递一个Explict值。但是,这在boto3的参数验证上失败。即

client.create_receipt_rule(
  RuleSetName='my-ruleset',
  After=None,
  Rule={ ... },
)

导致以下错误:

Parameter validation failed:
Invalid type for parameter After, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>

我还尝试传递字符串'null',但这会寻找一个名为null的规则来将规则放在后面,而不是将规则放在开始位置。

是否可以通过boto3客户端将expit null值传递给参数?

1 个答案:

答案 0 :(得分:0)

事实证明,我的测试不正确,因此我忽略了省略create_receipt_rule参数时after的行为。

当省略after参数时,新规则被添加为第一条规则,而不是我认为的最后一条。

因此,此问题的答案是无需传递明确的null值,只需省略after参数即可达到目标。