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

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

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

    Code Block
    languagepy
themeConfluencetitleDefault Azure Container Name DefinitionlanguagepythemeConfluencetitle
  1. def get_default_azure_container_name():
        return 'eagleml'
    
    
  2. 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:

Code Block
  1. Default Azure Container virtual directory Path Definition

    Code Block
    languagepy
    def get_default_azure_target_dir():
        return 'dropdir/eagleml'
    
    
  2. 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

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

    Code Block
    languagexml
themeConfluencetitleTask Parameter - Azure Delivery
  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
themeConfluencetitleAzure 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.

Code Blocklanguagetitle
jsthemeConfluence
  1. 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"}
    ]
  2. If the extract has to be distributed to more than one container within same account, you can specify an array of containers.

Code BlocklanguagejsthemeConfluencetitle
  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"},
                 ]
         }
    ]