[ 
https://issues.apache.org/jira/browse/AIRFLOW-6072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bjorn Olsen updated AIRFLOW-6072:
---------------------------------
    Description: 
The boto3 connection used by aws_hook does not respect outbound http_proxy 
settings (even if these are set in system wide). 

 

The way to configure a proxy is to pass a botocore.config.Config object to 
boto3 when creating a client (according to this SO post).

[https://stackoverflow.com/questions/33480108/how-do-you-use-an-http-https-proxy-with-boto3]

While the aws_hook get_client_type() method is used extensively by AWS 
Operators, the "config" argument is not used by any operator. 

Adding a check to aws_hook for "config" in the "extra_config" of the Airflow 
Connection, could allow us to pass kwargs there that build the Config object 
automatically by the hook.

Otherwise we have to update every AWS Operator to also take a "config" 
parameter.

 

To set an outbound proxy is then as simple as adding this to your extra_config:
{code:java}
{ .. ,
  "config":{ "proxies": {
    "http": "http://myproxy:8080";,
    "https": "http://myproxy:8080"; }},
 .. }
{code}
 

This needs to work both for the main boto3 clients that do task work, but also 
during the assume_role process which also uses a boto3 client.

  was:
The boto3 connection used by aws_hook does not respect outbound http_proxy 
settings (even if these are set in system wide). 

 

The way to configure a proxy is to pass a botocore.config.Config object to 
boto3 when creating a client (according to this SO post).

[https://stackoverflow.com/questions/33480108/how-do-you-use-an-http-https-proxy-with-boto3]

While the aws_hook get_client_type() method is used extensively by AWS 
Operators, the "config" argument is not used by any operator. 

Adding a check to aws_hook for "config" in the "extra_config" of the Airflow 
Connection, could allow us to pass kwargs there that build the Config object 
automatically by the hook.

Otherwise we have to update every AWS Operator to also take a "config" 
parameter.

 

To set an outbound proxy is then as simple as adding this to your extra_config:
                #    { .. ,
                #    "config":{"proxies": {
                #        "http": "http://myproxy:8080";,
                #        "https": "http://myproxy:8080"}},
                #     ..}


> aws_hook: Ability to set outbound proxy
> ---------------------------------------
>
>                 Key: AIRFLOW-6072
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-6072
>             Project: Apache Airflow
>          Issue Type: Improvement
>          Components: aws
>    Affects Versions: 1.10.6
>            Reporter: Bjorn Olsen
>            Assignee: Bjorn Olsen
>            Priority: Minor
>
> The boto3 connection used by aws_hook does not respect outbound http_proxy 
> settings (even if these are set in system wide). 
>  
> The way to configure a proxy is to pass a botocore.config.Config object to 
> boto3 when creating a client (according to this SO post).
> [https://stackoverflow.com/questions/33480108/how-do-you-use-an-http-https-proxy-with-boto3]
> While the aws_hook get_client_type() method is used extensively by AWS 
> Operators, the "config" argument is not used by any operator. 
> Adding a check to aws_hook for "config" in the "extra_config" of the Airflow 
> Connection, could allow us to pass kwargs there that build the Config object 
> automatically by the hook.
> Otherwise we have to update every AWS Operator to also take a "config" 
> parameter.
>  
> To set an outbound proxy is then as simple as adding this to your 
> extra_config:
> {code:java}
> { .. ,
>   "config":{ "proxies": {
>     "http": "http://myproxy:8080";,
>     "https": "http://myproxy:8080"; }},
>  .. }
> {code}
>  
> This needs to work both for the main boto3 clients that do task work, but 
> also during the assume_role process which also uses a boto3 client.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to