Publish in Azure

This section describes how to publish in Azure including Azure oath authentication, and distribution to multiple accounts and/or containers.  

Starting with December 2019 release this configuration is deprecated, though still supported. The Azure publishing configuration should be defined as explained in Data Services Distribution To Multiple Destinations.

This section describes how to publish in Azure.

Publish in Azure

To Publish in Azure:

  1. Specify the default Azure publishing configuration in dynamic/pyrules/custom/env.py as a get_default_azure_def() function. For example:

    Azure Connection Configuration

    def get_default_azure_def(): return """{"account":"eagleaccount","key":"BASE64ENCODEDAPPKEY=="}"""
  2. Add a get_default_azure_container_name() function to dynamic/pyrules/custom/env.py to define the default container name.

    Default Azure Container Name Definition

    def get_default_azure_container_name(): return 'eagleml'
  3. Optional.  Add a get_default_azure_target_dir() function to dynamic/pyrules/custom/env.py to define the target virtual directory in the container. The directory should be without trailing and leading back slashes:

    Default Azure Container virtual directory Path Definition

    def get_default_azure_target_dir(): return 'dropdir/eagleml'
  4. Optional.  Add get_azure_timeout() function to dynamic/pyrules/custom/env.py.to define timeout for publishing to Azure.The timeout parameter is expressed in seconds.
    Timeout Definition

    def get_azure_timeout(): return 600

    In order for the result of the extract to be delivered, define to Azure the following parameter in the RTR:

    Task Parameter - Azure Delivery

    <taskParameter> <name>TargetSinkType</name> <value>azureblob</value> </taskParameter>

Azure Oauth Authentication

Specify the default Azure publishing configuration in dynamic/pyrules/custom/env.py as a get_default_azure_def() function. For example:

Azure Connection Configuration
def get_default_azure_def(): return """{"account":"eagleaccount","application_id":"application-id","application_secret":"BASE64ENCODEDAPPSECRET==","tenant_id":"tenant-id"}"""

Distribution to multiple accounts/containers

You can distribute to multiple accounts/containers.
To distribute to multiple accounts/containers:

  1. To distribute to multiple accounts, the configuration string should be an array.In the example below the target_dir is optional.

    Configuration Example - Push To Multiple Containers

    [ {"account":"eagleaccount1","application_id":"application-id1","application_secret":"BASE64ENCODEDAPPSECRET==","tenant_id":"tenant-id", "container_name": "container1", "target_dir": "mydropbox"}, {"account":"eagleaccount2","application_id":"application-id2","application_secret":"BASE64ENCODEDAPPSECRET==","tenant_id":"tenant-id", "container_name": "container2", "target_dir": "mydropbox"} ]
  2. If the extract has to be distributed to more than one container within same account, you can specify an array of containers.

    Configuration Example - Push To Several Containers, Same Account

    [ {"account":"eagleaccount1","application_id":"application-id1","application_secret":"BASE64ENCODEDAPPSECRET==","tenant_id":"tenant-id", "containers" : [ {"container_name": "container1", "target_dir": "mydropbox1"}, {"container_name": "container2", "target_dir": "mydropbox2"}, ] } ]