Aws-lambda-dotnet: disappointed with the powershell implementation

Created on 13 Sep 2018  ·  3Comments  ·  Source: aws/aws-lambda-dotnet

Hi,
was testing out the Powershell support this morning and it was rather disappointing,

my feedback to the Lambda team.

  1. Powershell is not a 'native' 1st class citizen in Lambda but can be run as a .net wrapper.
  2. you have to package it up using tools that turn an 8kb ps1 into a 22mb lambda package
  3. you cant view the code inline in the console.
  4. performance is really poor. 1-second script now runs for about 8 o 9 seconds
  5. it's not native !!!

My Recommendation
Give us a Native Powershell experience, if Azure can do it then you guys can do it just as well if not better.

Most helpful comment

I'm gonna close this as there is nothing actionable right now but believe me I'm not dismissing your feedback. Right now this solution was an approach we could accomplish in the time we had with the Lambda runtime we had and it does satisfy quite a few customer requests we have had. Like I said before, we are going to continue to evolve this experience and hopefully we will eventually get to the experience you want.

All 3 comments

Thanks for trying out our PowerShell support and sorry it isn't meeting your expectations. The large bulk of the 22mb is including the AWSPowerShell.NetCore module which is needed to access AWS services. It is something we hope to address in the future but that is a separate issue then running PowerShell in Lambda.

We don't have the module preinstalled in the environment because it updated too frequently. Also we don't like to have dependencies preinstalled on the runtime that aren't required to be referenced by a version number. like Import-Module would do, because it makes it too dangerous for us to update the version.

The extra benefit of bundling the PowerShell NuGet packages with the deployment packages is it means you can get started with new versions of PowerShell as soon as they are released. For example we shipped using version 6.0.4 and then 2 days later 6.1.0 came out. You could start using 6.1.0 right away by setting the -PowerShellSdkVersion parameter to 6.1.0 when calling Publish-AWSPowerShellLambda.

Again thanks again for trying it. We will keep evolving the experience as we always do at AWS and I hope you will give it another try in the future.

@normj thanks for coming back to me, its really appreciated. Love the fact that Lambda can now support Powershell but I think it would be best to have its own runtime with it preinstalled on the current major versions ( they update it about ever 12 months ) giving us inline edit access to the ps1 and IF there is a desperate need for the minor version we can load the binary as per the current method.

I'm gonna close this as there is nothing actionable right now but believe me I'm not dismissing your feedback. Right now this solution was an approach we could accomplish in the time we had with the Lambda runtime we had and it does satisfy quite a few customer requests we have had. Like I said before, we are going to continue to evolve this experience and hopefully we will eventually get to the experience you want.

Was this page helpful?
0 / 5 - 0 ratings