dwall
02/20/2020, 9:05 PMs3_resource
in the dagster_aws
library. I get a PutObject Access Denied
error when trying to use context.resources.s3.upload_fileobj(fp, bucket, key)
but when I swap it out with:
s3 = boto3.resource('s3').meta.client
s3.upload_fileobj(fp, bucket, key)
everything works finemax
02/20/2020, 9:26 PMdwall
02/20/2020, 9:27 PMschrockn
02/20/2020, 9:51 PMdwall
02/20/2020, 9:54 PMbotocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/dagster/core/errors.py", line 159, in user_code_error_boundary
yield
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/dagster/core/engine/engine_inprocess.py", line 680, in _user_event_sequence_for_step_compute_fn
for event in gen:
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/dagster/core/execution/plan/compute.py", line 87, in _execute_core_compute
for step_output in _yield_compute_results(compute_context, inputs, compute_fn):
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/dagster/core/execution/plan/compute.py", line 64, in _yield_compute_results
for event in user_event_sequence:
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/dagster/core/definitions/decorators.py", line 413, in compute
for item in result:
File "/Users/dwall/repos/dataland-dagster/pipelines/vc_pipeline.py", line 171, in df_to_s3
context.resources.s3.upload_fileobj(fp, bucket, key)
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/dagster_aws/s3/resources.py", line 23, in upload_fileobj
return self.session.upload_fileobj(fileobj, bucket, key)
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/boto3/s3/inject.py", line 539, in upload_fileobj
return future.result()
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/s3transfer/futures.py", line 106, in result
return self._coordinator.result()
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/s3transfer/futures.py", line 265, in result
raise self._exception
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/s3transfer/tasks.py", line 126, in __call__
return self._execute_main(kwargs)
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/s3transfer/tasks.py", line 150, in _execute_main
return_value = self._main(**kwargs)
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/s3transfer/upload.py", line 692, in _main
client.put_object(Bucket=bucket, Key=key, Body=body, **extra_args)
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/dwall/.local/share/virtualenvs/dataland-dagster-Z2VR7MFq/lib/python3.8/site-packages/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
schrockn
02/20/2020, 9:55 PMdwall
02/20/2020, 9:55 PMschrockn
02/20/2020, 9:55 PMdwall
02/20/2020, 9:55 PMs3 = boto3.resource('s3').meta.client
s3.upload_fileobj(fp, bucket, key)
this works fine ^schrockn
02/20/2020, 9:59 PM@resource
def boto_client():
return boto3.resource('s3').meta.client
dwall
02/20/2020, 10:12 PMschrockn
02/20/2020, 10:17 PMdwall
02/20/2020, 10:18 PMschrockn
02/20/2020, 10:18 PMmax
02/20/2020, 10:25 PMAWS_DEFAULT_REGION
setdwall
02/20/2020, 10:26 PMmax
02/20/2020, 10:27 PMAWS_
env variables to set the secret access key and access key id presumablydwall
02/20/2020, 10:27 PMmax
02/20/2020, 10:30 PMdwall
02/20/2020, 11:26 PMschrockn
02/20/2020, 11:27 PM