Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Note

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.

On this page

Table of Contents
minLevel1
maxLevel6
outlinefalse
styledisc
typelist
printabletrue

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

...

  1. . For example:

    Azure Connection Configuration

    Code Block
    languagepy

...

  1. def get_default_azure_def():
        return """{"account":"eagleaccount","key":"BASE64ENCODEDAPPKEY=="}"""
    
    

...

  1. Add a get_default_azure_container_name() function to dynamic/pyrules/custom/env.py

...

  1. to define the default container name.

    Default Azure Container Name Definition

    Code Block
    languagepy

...

  1. def get_default_azure_container_name():
        return 'eagleml'
    
    

...

  1. Optional.

...

  1.   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:

...

  1. Default Azure Container virtual directory Path Definition

    Code Block
    languagepy
    def get_default_azure_target_dir():
        return 'dropdir/eagleml'
    
    

...

  1. Optional.

...

  1.   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

    Code Block
    languagepy

...

...

  1. def get_azure_timeout():
        return 600

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

...

  1. in the RTR:

    Task Parameter - Azure Delivery

    Code Block
    languagexml

...

  1. <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
Code Block
languagepy

...

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

...

  1. string should be an array

...

  1. .In the example below the target_dir is optional.

    Configuration Example - Push To Multiple Containers

    Code Block
    languagejs
    [
        {"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"}
    ]

In the above example the target_dir is optional.

  1. If the extract has to be distributed to more than one container within same account, you can specify an array of containers

...

  1. .

    Configuration Example - Push To Several Containers, Same Account

    Code Block
    languagejs
    [
        {"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"},
                 ]
         }
    ]