WinSCP.exe in .NET Core Lambda function
Hi,
I have developed a .NET Core 6.0 using WinSCP 6.1.0 NuGet package. Locally, from my own PC, I can access a SFTP server, obtaining connection and being able to PUT files. When I deploy my app as a AWS Lambda function I get the following error on
However, in a Lambda function the
Where can I find the path where the Lambda function keeps winscp.exe?
Henrik
I have developed a .NET Core 6.0 using WinSCP 6.1.0 NuGet package. Locally, from my own PC, I can access a SFTP server, obtaining connection and being able to PUT files. When I deploy my app as a AWS Lambda function I get the following error on
Session.Open()
:
I am aware that for a Azure Function I can setWinSCP.SessionLocalException: The winscp.exe executable was not found at location of the assembly WinSCPnet (/var/task), nor the entry assembly Amazon.Lambda.RuntimeSupport (/var/runtime), nor in an installation path. You may use Session.ExecutablePath property to explicitly set path to winscp.exe.
ExecutablePath
like this, and it works:
[FunctionName(FunctionName)] public static void Run([TimerTrigger("%XXXSendSchedule%")] TimerInfo myTimer, ILogger log, ExecutionContext executionContext) . . . using (Session winscpSession = new Session()) { // See https://winscp.net/eng/docs/guide_microsoft_azure_function_sftp winscpSession.ExecutablePath = Path.Combine(executionContext.FunctionAppDirectory, "winscp.exe");
ILambdaContext
does not seem to have anything like Azure's FunctionAppDirectory
:
public void MyFunctionHandler(ILambdaContext context)
Henrik