botocore.Exceptions.ClientError: ListObjectsV2 작업을 호출할 때 오류가 발생했습니다(InvalidToken).

botocore.Exceptions.ClientError: ListObjectsV2 작업을 호출할 때 오류가 발생했습니다(InvalidToken).

mlflow에서 호스팅 되고 백그라운드에서 저장용으로 aws사용되는 서버가 있습니다 . 서버에 액세스하고, 모델을 로드하고, 예측하고 완료하는 Python 스크립트를 실행하는 프로그램을 s3실행하려고 합니다 . 내 문제가 발생하는 코드는 다음과 같습니다.lambda-functionmlflowpytorch

with open('./data/api_keys.json', 'r') as f:
    API_KEYS = json.load(f)

os.environ['AWS_DEFAULT_REGION'] = API_KEYS['AWS_DEFAULT_REGION']
os.environ["AWS_ACCESS_KEY_ID"] = API_KEYS['AWS_ACCESS_KEY_ID']
os.environ["AWS_SECRET_ACCESS_KEY"] = API_KEYS['AWS_SECRET_ACCESS_KEY']

mlflow.set_tracking_uri(MLFLOW_TRACKING_URI)

model = mlflow.pytorch.load_model(MODEL_URI)     # <---- error thrown here

의 추적은 다음 cloudwatch과 같습니다.

File "/app/production_script.py", line 26, in <module>
model = mlflow.pytorch.load_model(MODEL_URI)
File "/usr/local/lib/python3.9/site-packages/mlflow/pytorch/__init__.py", line 693, in load_model
local_model_path = _download_artifact_from_uri(artifact_uri=model_uri)
File "/usr/local/lib/python3.9/site-packages/mlflow/tracking/artifact_utils.py", line 95, in _download_artifact_from_uri
return get_artifact_repository(artifact_uri=root_uri).download_artifacts(
File "/usr/local/lib/python3.9/site-packages/mlflow/store/artifact/artifact_repo.py", line 179, in download_artifacts
if self._is_directory(artifact_path):
File "/usr/local/lib/python3.9/site-packages/mlflow/store/artifact/artifact_repo.py", line 61, in _is_directory
listing = self.list_artifacts(artifact_path)
File "/usr/local/lib/python3.9/site-packages/mlflow/store/artifact/s3_artifact_repo.py", line 121, in list_artifacts
for result in results:
File "/usr/local/lib/python3.9/site-packages/botocore/paginate.py", line 269, in __iter__
response = self._make_request(current_kwargs)
File "/usr/local/lib/python3.9/site-packages/botocore/paginate.py", line 357, in _make_request
return self._method(**current_kwargs)
File "/usr/local/lib/python3.9/site-packages/botocore/client.py", line 530, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python3.9/site-packages/botocore/client.py", line 960, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidToken) when calling the ListObjectsV2 operation: The provided token is malformed or otherwise invalid.

에 따라문서,ListObjectsV2

요청마다 버킷에 있는 객체의 일부 또는 전부(최대 1,000개)를 반환합니다.

이 작업을 사용하려면 버킷에 대한 읽기 액세스 권한이 있어야 합니다.

AWS Identity and Access Management(IAM) 정책에서 이 작업을 사용하려면 s3:ListBucket 작업을 수행할 권한이 있어야 합니다.

policy이에 대해 정의한 내에 는 호스팅되는 버킷에 대한 권한이 lambda-function있습니다 .s3:ListBucketmlflow

이 문제를 해결하는 방법에 대한 아이디어를 환영합니다.

관련 정보