【问题标题】:Create dns entries in route 53 using boto使用 boto 在路由 53 中创建 dns 条目
【发布时间】:2016-10-27 04:24:20
【问题描述】:

我正在寻找一种使用 boto 传递 json 文件的方法,该文件将具有 dns 条目,并且可以在路由 53 中尽快创建此 dns 条目。

感谢任何可能的帮助、指导或任何事情。

提前致谢:)

【问题讨论】:

  • 使用 aws cli,我们可以按照此处记录的方式执行批处理请求-link 试图弄清楚如何使用 boto 来执行此操作??
  • 如果你已经有一个 Json 文件。为什么不使用 CloudFormation 呢?
  • 实际上我想每 30 秒运行一次脚本,看看是否有任何新机器按比例放大可以达到 100,然后对于所有这些按比例放大的机器,创建一个包含实例的 json 文件详细信息并在批处理请求中而不是按顺序创建 dns 条目....
  • 为每个新自动缩放的实例添加一个 sns 通知。将其发送到 sqs 队列。编写一个脚本,从 sqs 队列中收集有关实例 ip 和其他详细信息的信息,并在 AWS Route53 中生成所需的记录......这将是您所需的脚本
  • 您是否考虑过让实例通过用户数据自行注册?唯一的问题是删除已终止实例的条目。

标签: amazon-web-services boto amazon-route53


【解决方案1】:

如果您有能力让脚本每 30 秒运行一次,那就太好了。

您可以编写一个执行以下操作的 python 脚本。

  • 使用 cloudwatch 指标为每个自动缩放的实例触发 SNS 通知
  • 将 SNS 与 SQS 队列绑定。
  • 从 SQS 队列中检索信息。 (实例 IP 和主机名)
  • 根据您的要求使用信息生成所需的 Route53 记录。
  • 如果实例被删除,则删除其关联记录。

【讨论】:

  • 这是我们现有的机制,但它失败了,因为我们依赖于队列。要扩大 100 台机器,需要花费大量时间。 :(
【解决方案2】:

如果您的目标是为新创建的实例添加 DNS 条目,那么您可以让实例自行注册。

user data script 可以在实例首次启动时自动运行。此脚本可以调用 AWS Command-Line Interface (CLI) 在 Route 53 中注册新的 DNS 条目。

脚本将执行以下操作:

  • 使用所需的 DNS CREATE 条目创建 JSON 文件
  • 调用aws route53 change-resource-record-sets命令

见:AWS CLI documentation for change-resource-record-sets

但是,您必须想办法在实例终止时删除 DNS 条目。

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2020-02-11
    • 2018-09-28
    • 2015-12-26
    • 2021-06-30
    • 2018-05-18
    相关资源
    最近更新 更多