当从一个使用TokenExchangeService的Greengrass组件调用boto3.client()时,boto3偶尔会引发CredentialRetrievalError异常。

0

【以下的问题经过翻译处理】 你好! 我碰到了一个问题,我使用Greengrass组件时启动后不久就会崩溃。该组件使用boto3连接S3,S3相关的权限在GreengrassV2TokenExchangeRole中。在组件的recipe中,指定了对TokenExchangeService的依赖:

  aws.greengrass.TokenExchangeService:
    VersionRequirement: '^2.0.0'
    DependencyType: HARD

代码的相关部分如下:

s3_connection_config = botocore.config.Config(
    retries = {
        'max_attempts': 10,
        'mode': 'standard'
   }
)
print("Creating boto3 S3 client...")
s3_client = boto3.client('s3', config=s3_connection_config)

使用s3_connection_config应用重试配置对调用boto3.client()时抛出的错误没有任何影响-脚本会崩溃并重新启动Greengrass组件,直到崩溃次数足够多才被认为系统错误。我们可以使用try-except创建自己的重试机制,但这是正确的方法吗?TokenExchangeService是否存在bug?

下面是日志:

2023-04-12T08:52:06.864Z [INFO] (Copier) FirmwareCourier: stdout. Creating boto3 S3 client.... {scriptName=services.FirmwareCourier.lifecycle.Run, serviceName=FirmwareCourier, currentState=RUNNING}
2023-04-12T08:52:11.668Z [WARN] (Copier) FirmwareCourier: stderr. Traceback (most recent call last):. {scriptName=services.FirmwareCourier.lifecycle.Run, serviceName=FirmwareCourier, currentState=RUNNING}
2023-04-12T08:52:11.669Z [WARN] (Copier) FirmwareCourier: stderr. File "/home/ggc_user/.local/lib/python3.9/site-packages/botocore/credentials.py", line 1985, in fetch_creds. {scriptName=
profile picture
專家
已提問 5 個月前檢視次數 8 次
1 個回答
0

【以下的回答经过翻译处理】 报告的错误是500错误。请打开greengrass日志文件查看问题(/greengrass/v2/logs/greengrass.log)。

如果偶尔出现问题,那么是的,您应该使用try-except重试。

profile picture
專家
已回答 5 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南