spinnaker-plugins / aws-lambda-deployment-plugin-spinnaker

Spinnaker plugin to support deployment of AWS Lambda functions via Spinnaker pipelines
Apache License 2.0
23 stars 22 forks source link

Evaluate stages & Artifacts in RouteStage #64

Closed shaiguitar closed 3 years ago

shaiguitar commented 3 years ago

It looks like there is incompatibility between the plugin expecting a full/newly defined embedded artifact and the pipeline’s needs to use an evaluate stage type artifact - ie user input for it. Full details:

Reference attributes in both scenarios ( eval artifacts and newly defined embedded ones ):

• Fields of using an already eval’ed artifact:

# using the evaled ID:

  "payloadArtifact": {
    "artifact": null,
    "id": "ab3a5b2d6755e4b9e769d44859d21a15"
  },

An example trace:

2021-06-01 15:08:34.328  WARN 1 --- [     handlers-6] c.n.s.o.e.DefaultExceptionHandler        : [XXX] Error occurred during task lambdaTrafficUpdateTask
java.lang.NullPointerException: null
    at com.amazon.aws.spinnaker.plugin.lambda.utils.LambdaCloudDriverUtils.resolvePipelineArtifact(LambdaCloudDriverUtils.java:397)
    at com.amazon.aws.spinnaker.plugin.lambda.utils.LambdaCloudDriverUtils.lambda$getPipelinesArtifactContent$3(LambdaCloudDriverUtils.java:416)
    at com.netflix.spinnaker.kork.core.RetrySupport.retry(RetrySupport.java:34)
    at com.netflix.spinnaker.kork.core.RetrySupport.retry(RetrySupport.java:27)
    at com.amazon.aws.spinnaker.plugin.lambda.utils.LambdaCloudDriverUtils.getPipelinesArtifactContent(LambdaCloudDriverUtils.java:413)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.BlueGreenDeploymentStrategy.verifyResults(BlueGreenDeploymentStrategy.java:99)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.BlueGreenDeploymentStrategy.deploy(BlueGreenDeploymentStrategy.java:54)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.BlueGreenDeploymentStrategy.deploy(BlueGreenDeploymentStrategy.java:38)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.LambdaTrafficUpdateTask.execute(LambdaTrafficUpdateTask.java:69)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1$1.invoke(RunTaskHandler.kt:143)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withLoggingContext(RunTaskHandler.kt:416)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.access$withLoggingContext(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1.invoke(RunTaskHandler.kt:105)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.AuthenticationAware$sam$java_util_concurrent_Callable$0.call(AuthenticationAware.kt)
    at com.netflix.spinnaker.security.AuthenticatedRequest.lambda$wrapCallableForPrincipal$0(AuthenticatedRequest.java:272)
    at com.netflix.spinnaker.orca.q.handler.AuthenticationAware$DefaultImpls.withAuth(AuthenticationAware.kt:53)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withAuth(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1.invoke(RunTaskHandler.kt:104)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$withTask$1.invoke(RunTaskHandler.kt:244)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$withTask$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withTask$1.invoke(OrcaMessageHandler.kt:68)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withTask$1.invoke(OrcaMessageHandler.kt:46)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withStage$1.invoke(OrcaMessageHandler.kt:85)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withStage$1.invoke(OrcaMessageHandler.kt:46)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.withExecution(OrcaMessageHandler.kt:95)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withExecution(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.withStage(OrcaMessageHandler.kt:74)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withStage(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.withTask(OrcaMessageHandler.kt:60)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withTask(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withTask(RunTaskHandler.kt:233)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.handle(RunTaskHandler.kt:101)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.handle(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.q.MessageHandler$DefaultImpls.invoke(MessageHandler.kt:36)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.invoke(OrcaMessageHandler.kt)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.audit.ExecutionTrackingMessageHandlerPostProcessor$ExecutionTrackingMessageHandlerProxy.invoke(ExecutionTrackingMessageHandlerPostProcessor.kt:72)
    at com.netflix.spinnaker.q.QueueProcessor$callback$1$1.run(QueueProcessor.kt:90)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
2021-06-01 15:08:34.328 ERROR 1 --- [     handlers-6] c.n.s.orca.q.handler.RunTaskHandler      : [XXX] Error running LambdaTrafficUpdateTask for pipeline[01F741ME5020VW2WDY7QWW3KCC]
java.lang.NullPointerException: null
    at com.amazon.aws.spinnaker.plugin.lambda.utils.LambdaCloudDriverUtils.resolvePipelineArtifact(LambdaCloudDriverUtils.java:397)
    at com.amazon.aws.spinnaker.plugin.lambda.utils.LambdaCloudDriverUtils.lambda$getPipelinesArtifactContent$3(LambdaCloudDriverUtils.java:416)
    at com.netflix.spinnaker.kork.core.RetrySupport.retry(RetrySupport.java:34)
    at com.netflix.spinnaker.kork.core.RetrySupport.retry(RetrySupport.java:27)
    at com.amazon.aws.spinnaker.plugin.lambda.utils.LambdaCloudDriverUtils.getPipelinesArtifactContent(LambdaCloudDriverUtils.java:413)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.BlueGreenDeploymentStrategy.verifyResults(BlueGreenDeploymentStrategy.java:99)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.BlueGreenDeploymentStrategy.deploy(BlueGreenDeploymentStrategy.java:54)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.BlueGreenDeploymentStrategy.deploy(BlueGreenDeploymentStrategy.java:38)
    at com.amazon.aws.spinnaker.plugin.lambda.traffic.LambdaTrafficUpdateTask.execute(LambdaTrafficUpdateTask.java:69)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1$1.invoke(RunTaskHandler.kt:143)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withLoggingContext(RunTaskHandler.kt:416)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.access$withLoggingContext(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1.invoke(RunTaskHandler.kt:105)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.AuthenticationAware$sam$java_util_concurrent_Callable$0.call(AuthenticationAware.kt)
    at com.netflix.spinnaker.security.AuthenticatedRequest.lambda$wrapCallableForPrincipal$0(AuthenticatedRequest.java:272)
    at com.netflix.spinnaker.orca.q.handler.AuthenticationAware$DefaultImpls.withAuth(AuthenticationAware.kt:53)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withAuth(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1.invoke(RunTaskHandler.kt:104)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$handle$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$withTask$1.invoke(RunTaskHandler.kt:244)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler$withTask$1.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withTask$1.invoke(OrcaMessageHandler.kt:68)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withTask$1.invoke(OrcaMessageHandler.kt:46)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withStage$1.invoke(OrcaMessageHandler.kt:85)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$withStage$1.invoke(OrcaMessageHandler.kt:46)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.withExecution(OrcaMessageHandler.kt:95)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withExecution(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.withStage(OrcaMessageHandler.kt:74)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withStage(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.withTask(OrcaMessageHandler.kt:60)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withTask(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.withTask(RunTaskHandler.kt:233)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.handle(RunTaskHandler.kt:101)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.handle(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.q.MessageHandler$DefaultImpls.invoke(MessageHandler.kt:36)
    at com.netflix.spinnaker.orca.q.handler.OrcaMessageHandler$DefaultImpls.invoke(OrcaMessageHandler.kt)
    at com.netflix.spinnaker.orca.q.handler.RunTaskHandler.invoke(RunTaskHandler.kt:75)
    at com.netflix.spinnaker.orca.q.audit.ExecutionTrackingMessageHandlerPostProcessor$ExecutionTrackingMessageHandlerProxy.invoke(ExecutionTrackingMessageHandlerPostProcessor.kt:72)
    at com.netflix.spinnaker.q.QueueProcessor$callback$1$1.run(QueueProcessor.kt:90)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

Let me know if I can provide any other needed information.

mad-briller commented 1 year ago

was any solution found to this? still encountering the same issue

thanks for your time