当从一个使用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
EXPERTE
gefragt vor 5 Monaten8 Aufrufe
1 Antwort
0

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

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

profile picture
EXPERTE
beantwortet vor 5 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