.net - AWS、EC2 - RunInstances 之后创建标签

标签 .net amazon-ec2 amazon-web-services

我正在使用 .NET SDK 并尝试在创建新实例后立即对其进行标记 - 在 RunInstances 之后立即创建标签。

大多数时候它都能正常工作,但偶尔我会收到一个错误,指出实例 ID 无效(随后检查控制台或重试,它是有效的)。

我知道,对于 SQS、SDB 等,它们是“最终一致的”,并且可能需要重试调用(尽管我相信 SDK 无论如何都会为您做到这一点) - 但对于创建实例的一般调用,我不认为有必要。更重要的是,我认为这不是一件好事;寻找特定的异常并几乎无限地重试,直到它起作用。

如果创建实例和标记实例的过程必须进入具有冗余集中式系统的分布式工作流程中进行轮询和重试,我认为这是一个糟糕的情况!

我似乎在文档中找不到与此相关的任何内容。我想如果我调用 RunInstances 并获得带有实例 ID 的响应,则该实例 ID 应该立即对标记有效。

到目前为止我对可能的解决方案的想法:

  • 修复了 RunInstances 后几秒的延迟(不良、任意延迟)
  • 立即尝试,否则延迟 5 秒并重试,最多“n”次(可以,但任意)
  • 创建分布式工作流程来处理任何像这样的链式 API 调用,需要 EC2 实例的中央冗余场来管理可靠性(糟糕,严重过度设计)
  • 找到一些其他解释,我可以在其中调用另一个 API 方法或在请求中设置某些内容以使其正常工作

还有其他人经历过这种情况吗?有该领域的知识吗?等等?

(我在 AWS 社区论坛上有一个帖子,但还没有: https://forums.aws.amazon.com/thread.jspa?threadID=80489&tstart=0 )

最佳答案

恐怕您的第一个选择是正确的 - 在调用 RunInstances 之后,实例被分配预留标识、开始运行并变得可用之前需要一段有限的可变时间进一步呼吁反对它。

我的控制软件只是在启动器线程上休眠 5 秒,直到实例进入“正在运行”状态,此时我可以开始发出其他调用。

关于.net - AWS、EC2 - RunInstances 之后创建标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8210380/

相关文章:

c# - 是否有 "AllIndexesOf"方法?

java - 如何从java中的.net SOAP Web服务获取XML响应?

c# - 如何判断一个窗口是模态窗口还是 MDI 窗口?

magento - Varnish 缓存服务器 : error 503 service unavailable

caching - 拆分 Redis RDB 文件

amazon-web-services - AWS : Placing an Application Load Balance in front of Elasticsearch Managed Service

.net - System.IO.Compression和ZipFile-提取并覆盖

date - Ansible:比较过去一小时两个日期之间的差异

amazon-web-services - 使用 Terraform 在对象内迭代列表

ios - AWS-Cognito 和 DynamoDB 将如何用于移动开发-iOS-Swift