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

强制AWS库从docker集群内的环境中获取区域

谢旻
2023-03-14

我正在尝试测试在桌面上的docker容器中运行的Java应用程序。如果我直接从命令行执行它,该应用程序运行良好,但当我尝试在桌面上的Docker容器中运行它时,它会失败。错误输出显示库正在请求区域信息,但失败时出现以下错误:

com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.

我将区域作为环境变量提供:

AWS_DEFAULT_REGION=us-east-2

如果我硬编码该区域,它工作很好。(库成功地从环境变量中提取凭据。)

共有1个答案

锺伟志
2023-03-14

AWS在这方面的实现是不一致的,因为有时需要AWS_DEFAULT_REGION,而有时则需要AWS_REGION。对于用于Java的AWS API,请使用aws_region。(指定两者在所有情况下都有效。)

[H/T John Camerin,他在对类似问题的评论中揭示了这一答案。]

参见44151982、36354423、Github AWS/AWS-SDK-GO#2103

 类似资料:
  • 我的应用程序出现OutOfMemory异常。我已经把垃圾堆和垫子翻了个底朝天。在分析我的应用程序内存使用情况时,我发现以下疑点。我无法理解这些嫌疑人背后的主要原因。 请帮助我了解这种泄漏的怀疑和什么相关的解决方案。 “AJP-Bio-9002”-exec-5 at java.util.arrays.copyof([ci)[C(arrays.java:2882)at java.lang.abstra

  • 本文向大家介绍docker搭建rabbitmq集群环境的方法,包括了docker搭建rabbitmq集群环境的方法的使用技巧和注意事项,需要的朋友参考一下 本文主要讲述如何用docker搭建rabbitmq的集群。分享给大家,希望此文章对各位有所帮助。 下载镜像 采用bijukunjummen该镜像。 运行 启动集群 默认启动了三个节点 查看 访问 http://192.168.99.100:15

  • 问题内容: 从 尚未在Dockerfile中声明的Docker 容器获取环境变量的最简单方法 是什么 ? 例如,通过某个会话设置的环境变量? 我可以做到,但是我更喜欢只返回值的东西。 我尝试使用,但是替换似乎发生在容器外部,因此我没有从容器中获取env var,而是从我自己的计算机中获取了env var。 谢谢。 问题答案: 在容器中运行以使变量替换发生在容器中的正确方法是:

  • 我使用Spring调度程序,使用@调度注释来调度运行文件生成服务的作业。应用程序部署在集群环境中Tomcat的5个单独节点上,用于负载平衡和故障转移。正因为如此,服务被调度了5次,这是不可能的。有没有办法将调度程序配置为仅在当前节点上运行? 有一种方法使用数据库找出当前活动节点,并在这里调用该特定实例的调度器 另一种方法是使用石英调度器 由于我无法对部署的应用程序进行重大更改,是否有简单的解决方案

  • 问题内容: 将Singleton对象重构到集群环境的最佳策略是什么? 我们使用Singleton从数据库中缓存一些自定义信息。它 主要是 只读的,但是在发生某些特定事件时会刷新。 现在,我们的应用程序需要部署在集群环境中。根据定义,每个JVM将具有自己的Singleton实例。因此,当在单个节点上发生刷新事件并且刷新其缓存时,JVM之间的缓存可能不同步。 保持缓存同步的最佳方法是什么? 谢谢。 编

  • 目前Cloud-ML生态云只有武清集群。这个集群的基本配置如下: 武清集群 集群目前包括若干台CPU和GPU节点。 集群的Endpoint为:https://cnbj2.cloudml.api.xiaomi.com