当前位置: 首页 > 知识库问答 >
问题:

AWS ECS EC2:调用AWS API时的TaskCanceledException(连接超时)

顾俊楚
2023-03-14
IAmazonSecretsManager client = new AmazonSecretsManagerClient(region);
GetSecretValueRequest request = new GetSecretValueRequest
{
  SecretId = secretName,
  VersionStage = "AWSCURRENT" // VersionStage defaults to AWSCURRENT if unspecified.
};
GetSecretValueResponse response = Task.Run(async () => await client.GetSecretValueAsync(request)).Result;
curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

我也尝试过直接指定检索到的凭据,但没有成功:

AmazonSecretsManagerClient(awsAccessKeyId, awsSecretAccessKey, region)

此外,我尝试在容器中烘烤aws cli,并且从内部尝试aws SecretsManageraws iam Get-Useraws sts Get-Caller-Identity-仍然挂起而没有响应。我已经授予任务执行角色的完全管理访问权限-仍然没有成功。我可以从EC2容器实例中检索机密,但不能从挂载的容器中检索机密。

共有1个答案

谭敏学
2023-03-14

多亏了AWS的支持,才找到了解决方案。我配置的关键问题是awsvpc网络模式和容器的EC2启动类型的组合:

awsvpc网络模式不为使用EC2启动类型的任务提供公用IP地址的任务ENI。要访问internet,使用EC2启动类型的任务必须在配置为使用NAT网关的专用子网中启动

相反,我转向了使用动态端口映射桥接网络(通过使用应用程序负载平衡器实现)。我还使用主机网络模式来完成一些特定的任务--这也起到了作用。

 类似资料:
  • 帮帮我!我有一个restful API链接,我使用邮差工具调用成功,但当我在eclipse上编写restful客户端时,它失败了。我试过代理,但没有成功。 输出: 线程“main”com.sun.jersey.api.client.clientHandlerException中出现异常:

  • 我有一个Spring Boot(v2.0.8)应用程序,它使用HikariCP(v2.7.9)池(连接到MariaDB)配置: 问题在于,我们的生产组件每隔几周就会反复抛出 。问题在于它永远不会从中恢复,并且会不断引发异常。因此,需要重新启动计算装置。 从HikariPool源代码来看,这似乎正在发生,因为每次它调用poolEntry都是空的,因此会抛出超时异常。要使其为空,连接池必须没有空闲条目

  • 这简化了代码返回以下错误: 很奇怪,因为服务器已经准备好并设置好了(http://localhost:9200/ 返回了一些json)。

  • 问题内容: 我在代码中使用了RMI: 这些是4个.java文件。 接下来,我编译所有这些文件。然后创建一个using 。之后,我使用来在服务器端启动rmi注册表。然后,我开始使用服务器,最后使用客户端。 但是什么也没发生 客户端抛出的异常是 原因是什么,我该如何解决? 在客户端计算机上,这些是以下.class文件,在服务器端 问题答案: 错误消息说明了一切:您的连接超时。这意味着您的请求在某个(默

  • 我正在使用带有PostgreSQL数据库服务器的桌面应用程序。当我连续10到20分钟不使用应用程序时,数据库连接会断开。我正在使用PostgresqlJDBC进行数据库连接。 请帮我在这个数据库连接超时。 谢谢

  • 我正在使用Java套接字创建加密通信终端。我的问题是,当我通过“localhost”或我的计算机局域网地址连接时,程序连接完美,并按预期工作,但当我使用我的公共IP地址连接时,连接被拒绝,我得到 java.net.连接异常:连接超时:连接java.base/java.net.DualStackPlainSocketImpl.connect0(本地方法)在java.base/java.net.Dua