【以下的问题经过翻译处理】 你好!
我碰到了一个问题,我使用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=