rod*_*ocf 6 amazon-ec2 amazon-web-services aws-cli boto3 aws-secrets-manager
我正在 pycharm 中编写一个烧瓶 API。当我在本地运行我的代码时,使用 boto3 从机密管理器获取机密的请求不到一秒钟。但是,当我将代码放在 EC2 上时,大约需要 3 分钟(在 t2.micro 和 m5.large 中都尝试过)。
起初我认为这可能是 Python 问题,所以我使用以下命令通过 awscli 在我的 EC2 中运行它:
aws secretsmanager get-secret-value --secret-id secretname
Run Code Online (Sandbox Code Playgroud)
大约用了 3 分钟。为什么会发生这种情况?理论上,这在 EC2 中不应该比在我的本地机器中更快吗?
编辑:这仅在 EC2 位于与默认 VPC 不同的 VPC 内时发生。
LTA*_*sta 11
在我们的本地机器上解决了同样的问题近两个月后,我们今天终于取得了一些进展。
事实证明,问题与 IPv6 有关。
如果您使用的是 IPv6,那么机密管理器域将解析为 IPv6 地址。由于某种原因,cli 无法使用 IPv6 建立安全连接。超时后,cli 回退到 IPv4,然后成功。
要验证您是否正在解析 IPv6 地址,只需 ping secretsmanager.us-east-1.amazonaws.com。不要担心 ping 响应,您只想查看域解析到的 IP 地址。
要解决此问题,您现在有 3 个选项:
--cli-connect-timeout 1最终,选项 1 是真正的解决方案,但由于它是如此广泛,其他选项可能更容易。
希望这有助于其他人在遇到此问题时保持一点理智。
我在家里通过 Cisco AnyConnect VPN 客户端工作时遇到了这个问题。显然它会阻止任何 IPv6 内容。
我的解决方案是在我的笔记本电脑上完全禁用 IPv6。
对于 Mac 系统执行此操作:
networksetup -setv6off Wi-Fi # wireless
networksetup -setv6off Ethernet # wired
Run Code Online (Sandbox Code Playgroud)
重新启用:
networksetup -setv6automatic Wi-Fi # wireless
networksetup -setv6automatic Ethernet # wired
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |