关于ruby AWS sdk、身份验证(auth)和Greengrass的问题。

0

【以下的问题经过翻译处理】 我试着按照使用Greengrass组件身份验证的文档操作,但遇到了一个令人困惑的问题。

据我所知,在Greengrass环境中,只要设置了自动环境变量,身份验证就会自动处理。

(具体而言是AWS_CONTAINER_AUTHORIZATION_TOKEN和AWS_CONTAINER_CREDENTIALS_FULL_URI)

当我使用一个虚拟测试的Ruby程序时,这确实可以工作,例如

wrapper = Aws::IAM::Client.new wrapper.get_user

但是当我把测试程序换成使用timestream插件的fluentd时,却遇到了身份验证错误,

失败清空缓存 buffer. retry_times=0 next_retry_time=2023-04-12 17:54:12 +0000 chunk="5f9274b9cd65f79f9897b62d5fca25ed" error_class=Aws::Errors::EndpointDiscoveryError error="Endpoint discovery failed for the operation or discovered endpoint is not working, request will keep failing until endpoint discovery succeeds or :endpoint option is provided."

这让我感到很困惑。为什么相同的Ruby AWS库在一个情况下可行,但在另一个情况下失败呢?

另外补充一点,操作系统是Ubuntu 20.04。

profile picture
EXPERTE
gefragt vor 6 Monaten32 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 您遇到的错误与凭据无关,而是由于Timestream客户端无法确定要连接的终端点引起的。Timestream使用蜂窝架构,终端点是不固定的。AWS SDK实现了终端点发现模式,显然这在您的Greengrass组件内失败了。您应该验证与Greengrass TES角色相关联的权限是否允许“timestream:DescribeEndpoints”操作。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen