Azure Blob Storage
The AzureBlob storage module uses azure blob to store and retrieve workflows/tasks input/output payload that
went over the thresholds defined in properties named conductor.[workflow|task].[input|output].payload.threshold.kb
.
Warning Azure Java SDK use libs already present inside conductor
like jackson
and netty
.
You may encounter deprecated issues, or conflicts and need to adapt the code if the module is not maintained along with conductor
.
It has only been tested with v12.2.0.
Configuration
Usage
Cf. Documentation External Payload Storage
Example
conductor.additional.modules=com.swiftconductor.conductor.azureblob.AzureBlobModule
es.set.netty.runtime.available.processors=false
workflow.external.payload.storage=AZURE_BLOB
workflow.external.payload.storage.azure_blob.connection_string=DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;EndpointSuffix=localhost
workflow.external.payload.storage.azure_blob.signedurlexpirationseconds=360
Testing
You can use Azurite to simulate an Azure Storage.
Troubleshoots
- When using es5 persistence you will receive an
java.lang.IllegalStateException
because the Netty lib will callsetAvailableProcessors
two times. To resolve this issue you need to set the following system property
If you want to change the default HTTP client of azure sdk, you can use okhttp
instead of netty
.
For that you need to add the following dependency.