我正在使用AWS SDK for Java。
想象一下,我按照AWS文档中的描述创建了一个RDS实例。
AmazonRDS client = AmazonRDSClientBuilder.standard().build();
CreateDBInstanceRequest request = new CreateDBInstanceRequest().withDBInstanceIdentifier("mymysqlinstance").withAllocatedStorage(5)
.withDBInstanceClass("db.t2.micro").withEngine("MySQL").withMasterUsername("MyUser").withMasterUserPassword("MyPassword");
DBInstance response = client.createDBInstance(request);
如果我在发出请求后立即致电instance.getEndpoint()
,它会向我返回null
,因为AWS仍在创建数据库。我需要知道这个端点何时可用,但我不知道如何做到这一点。
使用AWS开发工具包有没有办法在最终创建实例时收到通知?
答案 0 :(得分:0)
您可以使用RDS SNS通知:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html#USER_Events.Messages
订阅Amazon RDS事件通知 您可以创建亚马逊 RDS事件通知订阅,以便您在收到通知时 事件发生在给定的数据库实例,数据库快照,数据库安全组, 或DB参数组。创建订阅的最简单方法是 使用RDS控制台。如果您选择创建事件通知 使用CLI或API进行订阅时,您必须创建Amazon Simple 通知服务主题并使用Amazon订阅该主题 SNS控制台或Amazon SNS API。您还需要保留亚马逊 主题的资源名称(ARN),因为它在提交时使用 CLI命令或API操作。有关创建SNS主题的信息 并订阅它,请参阅Amazon SNS入门。
答案 1 :(得分:0)
免责声明:意见回答
IMO在运行时使用这样的代码创建基础架构是魔鬼的工作。堆栈是进入这里的方式,更加模块化,您将获得以下一些好处:
您还可以将此方法与使用AWS Pipelines甚至AWS Simple Workflow Service之类的东西相结合,在自定义入职流程中添加自定义步骤,例如运行lambda函数,完成后发送通知,等待一些付款。这建立在我的最后一点上,如果此管道确实失败,您将能够看到哪个步骤失败,以及失败的原因。您还可以查看是否超时。
最后,我想建议每个客户创建基础架构时要谨慎。这是更多的工作,并增加分配更多的方式来解决问题。请确保您在AWS中设置限制,以免由于某些错误创建基础架构而导致您的账单出现问题。