模拟摩托车数据库实例未从 EnableIAMDatabaseAuthentication 参数读取

Posted

技术标签:

【中文标题】模拟摩托车数据库实例未从 EnableIAMDatabaseAuthentication 参数读取【英文标题】:Mocked moto rds DB instance is not reading from the EnableIAMDatabaseAuthentication parameter 【发布时间】:2020-01-13 21:05:20 【问题描述】:

我正在尝试检查这个测试,但似乎 EnableIAMDatabaseAuthentication 没有被传递给 moto

@mock_rds
def test_iam_database_authentication_enabled(self):
    print(self.client.create_db_instance(
        DBInstanceIdentifier='db-master-1',
        AllocatedStorage=10,
        Engine='postgres',
        DBInstanceClass='db.m1.small',
        EnableIAMDatabaseAuthentication=True,
        MasterUsername='root',
        MasterUserPassword='hunter2',
        Port=1234,
    ))

'DBInstance': 'DBInstanceIdentifier': 'db-master-1', 'DBInstanceClass':'db.m1.small','Engine':'postgres', 'DBInstanceStatus':'available','MasterUsername':'root','Endpoint': '地址': 'db-master-1.aaaaaaaaaa.us-east-2.rds.amazonaws.com', '端口':1234,'AllocatedStorage':10,'InstanceCreateTime': datetime.datetime(2020, 1, 13, 13, 1, 10, 665000, tzinfo=tzutc()), 'PreferredBackupWindow': '03:50-04:20', 'BackupRetentionPeriod': 1, 'DBSecurityGroups':[],'VpcSecurityGroups':[],'DBParameterGroups': ['DBParameterGroupName': 'default.postgres9.3', 'ParameterApplyStatus':'同步中'],'PreferredMaintenanceWindow': 'wed:06:38-wed:07:08', 'MultiAZ': False, 'EngineVersion': '9.3.3', “AutoMinorVersionUpgrade”:假,“ReadReplicaDBInstanceIdentifiers”: [], 'LicenseModel': '通用公共许可证', 'OptionGroupMemberships': ['OptionGroupName': 'default.postgres9.3', '状态':'同步'],'PubliclyAccessible':假,'StatusInfos':[], 'StorageType':'gp2','StorageEncrypted':假,'DbiResourceId': 'db-M5ENSHXFPU6XHZ4G4ZEI5QIO2U','CopyTagsToSnapshot':假, 'DBInstanceArn': 'arn:aws:rds:us-east-2:1234567890:db:db-master-1', 'IAMDatabaseAuthenticationEnabled':假,'ResponseMetadata': 'RequestId': '523e3218-afc7-11c3-90f5-f90431260ab4', 'HTTPStatusCode': 200, 'HTTPHeaders': 'server': 'amazon.com', “重试次数”:0

我在尝试传递 EnableIAMDatabaseAuthentication 参数时做错了吗?它应该设置:IAMDatabaseAuthenticationEnabled

【问题讨论】:

【参考方案1】:

我可以确认 moto 库本身没有从 this line of code in moto library 传递 EnableIAMDatabaseAuthentication 参数。

但是,我从上面的链接中得出结论,而不是查看 create_db_instance 函数的返回值,因为我查看了boto3 rds reference,它的响应值返回 EnableIAMDatabaseAuthentication无论如何。

您没有做错任何事情,该值只是在 boto3 的响应中不存在。即使有一天 moto 确实传入了那个参数,它也不会在 boto3 之前出现。其中一个例子是 MasterUserPassword 参数,moto 确实通过了它,但 boto3 没有在响应中包含它。

【讨论】:

啊,我错了,它实际上应该翻转这个参数:IAMDatabaseAuthenticationEnabled

以上是关于模拟摩托车数据库实例未从 EnableIAMDatabaseAuthentication 参数读取的主要内容,如果未能解决你的问题,请参考以下文章

需要 Appium-Help:模拟器未从 Appium.app 启动应用程序

未从类实例内部触发 Vue 3 反应性

2021.8.12提高B组模拟4T2 树上摩托(bfs)

Swift:UIViewController 实例未从 URLSession 委托方法接收更新

2021.8.12提高B组模拟4T2 树上摩托(bfs)

Service Fabric 运行时未从 Actor 服务实例回收未使用的内存