Skip to main content
Contributor
May 21, 2024
Solved

Export to Azure Blob (via SIC)

  • May 21, 2024
  • 1 reply
  • 0 views

Greetings OS Integrators,

Going with v8 and SIC for integrations, it is not an option to have 3. party assemblies added to the cloud environment. I am building a integration to push data from OS to an Azure Blob Storage location, and in this case I want to use some of the nice nuget packages (assemblies) that provides an easy way to do this, hereby authentication. I therefore want to use the following assemblies for my solution, that will run on SIC as a Smart function:

  • Azure.Storage.Blobs
  • Azure.Storage.Common
  • Azure.Identity
  • Azure.Core

As such, I am able to compile my Smart Function against an existing SIC gateway, and able to call the function from within OneStream. But, issues lies in required other dependencies within my code-logic. So my questions are:

  1. Are Smart Functions compiled against .NET framework 4.8?
  2. Looking at the assemblies already available within the SIC folder, I can see that both Azure.Core and Azure.Identity are there. Can I reference those by just using an import statement, or do I explicit need to add the reference by the full path (c:\program files\onstream software\onestream gateway\azure.core.dll)
  3. Can I reference a different version of a specific assembly, even the assembly is already part of SIC, by adding the file to the "referenced assemblies"? Let's say I want to use an earlier version of Azure.Core.dll, but this is already part of SIC

Are there any detailed information on how Smart Functions works/build/called? (whitepapers/docs)

Cheers, Frank

Best answer by franciscoamores

Hello,

have you considered using SFTP enabled access to the Azure BS? If you access to the BS via the public internet, you don't need SIC with this approach. The client must enable SFTP access for the blob storage and you can upload files using the WinSCP .net methods as you would do with any SFTP Server. if you require private network access, you need SIC but you don't need to use SIC BR as you can connect using the OneStream bound port from an Extender BR or Assembly BR (it's documented in SIC guide).

Inb my experience, if SFTP access for the Blob Storage is an option for your client, it simplifies a lot the integration architecture.

1 reply

Newcomer
May 21, 2024

Hello,

have you considered using SFTP enabled access to the Azure BS? If you access to the BS via the public internet, you don't need SIC with this approach. The client must enable SFTP access for the blob storage and you can upload files using the WinSCP .net methods as you would do with any SFTP Server. if you require private network access, you need SIC but you don't need to use SIC BR as you can connect using the OneStream bound port from an Extender BR or Assembly BR (it's documented in SIC guide).

Inb my experience, if SFTP access for the Blob Storage is an option for your client, it simplifies a lot the integration architecture.

FrankDKAuthor
Contributor
May 21, 2024

hey Francisco,

thanks, was not aware you could setup BS with SFTP access, so will chase that option. Any experience in regards of large data-volume push/get with BS?

Cheers Frank

Newcomer
May 22, 2024

We did not have any issue. It was working fine. For larger files we are compressing the CSV files as GZ. In v8 you also have the Parquet assembly so you can generate parquet files as well.