NoCredentialsError, include an actual Data set provider.
Running the code as is throws a NoCredentialsError. More details below:
`--------------------------------------------------------------------------- NoCredentialsError Traceback (most recent call last) Input In [5], in <cell line: 20>() 16 PATH = '/' 17 QUERY_STRING_PARAMETERS = {'param1': 'value1', 'param2': 'value2'} ---> 20 response = CLIENT.send_api_asset( 21 DataSetId=DATA_SET_ID, 22 RevisionId=REVISION_ID, 23 AssetId=ASSET_ID, 24 Method=METHOD, 25 Path=PATH, 26 Body=BODY, 27 QueryStringParameters=QUERY_STRING_PARAMETERS 28 ) 30 print('Response Headers:') 31 for header in response['ResponseHeaders']:
File ~\anaconda3\lib\site-packages\botocore\client.py:401, in ClientCreator._create_api_method.
File ~\anaconda3\lib\site-packages\botocore\client.py:717, in BaseClient._make_api_call(self, operation_name, api_params) 715 else: 716 apply_request_checksum(request_dict) --> 717 http, parsed_response = self._make_request( 718 operation_model, request_dict, request_context) 720 self.meta.events.emit( 721 'after-call.{service_id}.{operation_name}'.format( 722 service_id=service_id, (...) 725 model=operation_model, context=request_context 726 ) 728 if http.status_code >= 300:
File ~\anaconda3\lib\site-packages\botocore\client.py:737, in BaseClient._make_request(self, operation_model, request_dict, request_context) 735 def _make_request(self, operation_model, request_dict, request_context): 736 try: --> 737 return self._endpoint.make_request(operation_model, request_dict) 738 except Exception as e: 739 self.meta.events.emit( 740 'after-call-error.{service_id}.{operation_name}'.format( 741 service_id=self._service_model.service_id.hyphenize(), 742 operation_name=operation_model.name), 743 exception=e, context=request_context 744 )
File ~\anaconda3\lib\site-packages\botocore\endpoint.py:107, in Endpoint.make_request(self, operation_model, request_dict) 104 def make_request(self, operation_model, request_dict): 105 logger.debug("Making request for %s with params: %s", 106 operation_model, request_dict) --> 107 return self._send_request(request_dict, operation_model)
File ~\anaconda3\lib\site-packages\botocore\endpoint.py:180, in Endpoint._send_request(self, request_dict, operation_model) 178 context = request_dict['context'] 179 self._update_retries_context(context, attempts) --> 180 request = self.create_request(request_dict, operation_model) 181 success_response, exception = self._get_response( 182 request, operation_model, context) 183 while self._needs_retry(attempts, operation_model, request_dict, 184 success_response, exception):
File ~\anaconda3\lib\site-packages\botocore\endpoint.py:120, in Endpoint.create_request(self, params, operation_model) 116 service_id = operation_model.service_model.service_id.hyphenize() 117 event_name = 'request-created.{service_id}.{op_name}'.format( 118 service_id=service_id, 119 op_name=operation_model.name) --> 120 self._event_emitter.emit(event_name, request=request, 121 operation_name=operation_model.name) 122 prepared_request = self.prepare_request(request) 123 return prepared_request
File ~\anaconda3\lib\site-packages\botocore\hooks.py:358, in EventAliaser.emit(self, event_name, **kwargs) 356 def emit(self, event_name, **kwargs): 357 aliased_event_name = self._alias_event_name(event_name) --> 358 return self._emitter.emit(aliased_event_name, **kwargs)
File ~\anaconda3\lib\site-packages\botocore\hooks.py:229, in HierarchicalEmitter.emit(self, event_name, **kwargs) 218 def emit(self, event_name, **kwargs): 219 """ 220 Emit an event by name with arguments passed as keyword args. 221 (...) 227 handlers. 228 """ --> 229 return self._emit(event_name, kwargs)
File ~\anaconda3\lib\site-packages\botocore\hooks.py:212, in HierarchicalEmitter._emit(self, event_name, kwargs, stop_on_response) 210 for handler in handlers_to_call: 211 logger.debug('Event %s: calling handler %s', event_name, handler) --> 212 response = handler(**kwargs) 213 responses.append((handler, response)) 214 if stop_on_response and response is not None:
File ~\anaconda3\lib\site-packages\botocore\signers.py:95, in RequestSigner.handler(self, operation_name, request, **kwargs) 90 def handler(self, operation_name=None, request=None, **kwargs): 91 # This is typically hooked up to the "request-created" event 92 # from a client's event emitter. When a new request is created 93 # this method is invoked to sign the request. 94 # Don't call this method directly. ---> 95 return self.sign(operation_name, request)
File ~\anaconda3\lib\site-packages\botocore\signers.py:167, in RequestSigner.sign(self, operation_name, request, region_name, signing_type, expires_in, signing_name) 164 else: 165 raise e --> 167 auth.add_auth(request)
File ~\anaconda3\lib\site-packages\botocore\auth.py:401, in SigV4Auth.add_auth(self, request) 399 def add_auth(self, request): 400 if self.credentials is None: --> 401 raise NoCredentialsError() 402 datetime_now = datetime.datetime.utcnow() 403 request.context['timestamp'] = datetime_now.strftime(SIGV4_TIMESTAMP)
NoCredentialsError: Unable to locate credentials`