We are running 2021.2 and utilizing ADL Output Tool 2.2 (the only one that works in our environment at the moment). We have a workflow that executes successfully and writes to the output folder when run locally and fails on the server with the following error. I have installed all of the security certificates; AMP Engine is enabled for both the Controller and the Engine; and the tool is installed for use by all users on the server. Any suggestions would be appreciated.
"Traceback (most recent call last): File "adl_output_engine.py", line 442, in ii_push_record File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\connectors_core\azure\filewriters.py", line 64, in open file_exists = self.file_exists() File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\connectors_core\azure\filewriters.py", line 112, in file_exists file_info = self.adl_fs.info(path=self.file_path) File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\ADLSGen2.py", line 104, in wrapper return f(*args, **kwargs) File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\ADLSGen2.py", line 303, in info r = self.requests.head(f'{self.url}/{path.lstrip("/")}', headers=self.headers) File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\ADLSGen2.py", line 104, in wrapper return f(*args, **kwargs) File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\ADLSGen2.py", line 201, in _request new_headers = self._prepare_headers( File "C:\ProgramData\Alteryx\Tools\azure_data_lake_output_v2.2.0-dev.790d8fea.2111091856\ADLSGen2.py", line 248, in _prepare_headers base64.b64decode(self.instance.shared_key), File "D:\Alteryx\bin\Miniconda3\lib\base64.py", line 87, in b64decode return binascii.a2b_base64(s) binascii.Error: Invalid base64-encoded string: number of data characters (2929) cannot be 1 more than a multiple of 4"
Thank you.
I believe the problem is because the credential you keyed into the tool to authenticate can only be reused by you and on your machine. When you publish to Server, those credentials stored in that tool are no longer viable. This is the case with most, if not all, Python based tools/connectors that Alteryx has developed. The Data Connection Manager (DCM) that was released on 2022.1 is intended to help with this.
There are some work arounds to allow this to work, but requires edits to the system registry on both the Server and your machine. I recommend reaching out Alteryx Support for assistance/guidance.
@jrgo , Thank you for your reply!
I am using a Shared Key authentication method, there's nothing tying it to an individual. The workflow runs as expected on multiple Designer installations, just not when we try to schedule it on the Gallery.
Vicki
Paging @VojtechT ...
@Vicki_C @apathetichell @VojtechT
were you able to find a solution to this issue? I am running into the same issue using v2023.2. workflow runs on desktops but not on server. Using a Shared Key authentication method in the Azure Data Lake File Output tool.