bradford stephens created AIRFLOW-1477:
------------------------------------------

             Summary: S3KeySensor throws 400 Error
                 Key: AIRFLOW-1477
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-1477
             Project: Apache Airflow
          Issue Type: Bug
          Components: core
    Affects Versions: 1.8.1
         Environment: Ubuntu Linux 16.10
            Reporter: bradford stephens


Despite configuring an S3 connection, S3KeySensor throws an error:

{code:java}
[2017-07-31 20:06:34,090] {base_task_runner.py:95} INFO - Subtask: [2017-07-31 
20:06:34,088] {models.py:1430} ERROR - S3ResponseError: 400 Bad Request
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask: Traceback 
(most recent call last):
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 1387, in run
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:     result = 
task_copy.execute(context=context)
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/local/lib/python2.7/dist-packages/airflow/operators/sensors.py", line 76, 
in execute
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:     while 
not self.poke(context):
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/local/lib/python2.7/dist-packages/airflow/operators/sensors.py", line 
533, in poke
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:     return 
hook.check_for_key(self.bucket_key, self.bucket_name)
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/local/lib/python2.7/dist-packages/airflow/hooks/S3_hook.py", line 262, in 
check_for_key
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:     bucket = 
self.get_bucket(bucket_name)
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:   File 
"/usr/local/lib/python2.7/dist-packages/airflow/hooks/S3_hook.py", line 222, in 
get_bucket
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:     return 
self.connection.get_bucket(bucket_name)
[2017-07-31 20:06:34,091] {base_task_runner.py:95} INFO - Subtask:   File 
"/home/bradford/.local/lib/python2.7/site-packages/boto/s3/connection.py", line 
506, in get_bucket
[2017-07-31 20:06:34,092] {base_task_runner.py:95} INFO - Subtask:     return 
self.head_bucket(bucket_name, headers=headers)
[2017-07-31 20:06:34,092] {base_task_runner.py:95} INFO - Subtask:   File 
"/home/bradford/.local/lib/python2.7/site-packages/boto/s3/connection.py", line 
553, in head_bucket
[2017-07-31 20:06:34,092] {base_task_runner.py:95} INFO - Subtask:     
response.status, response.reason, body)
[2017-07-31 20:06:34,092] {base_task_runner.py:95} INFO - Subtask: 
S3ResponseError: S3ResponseError: 400 Bad Request
{code}

I have tried both with and without the host parameter in the connection.

The DAG code includes:

{code:python}
inputsensor = S3KeySensor(
   task_id='check_s3_for_file_in_s3',
   bucket_key='test-input-temp.json',
   wildcard_match=False,
   bucket_name='ventera-staging-data',
   s3_conn_id='S3Connection',
   timeout=18*60*60,
   poke_interval=120,
   dag=dag)
{code}

The "extra" field in S3Connection has been set with the aws keys.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to