sparse-intern-71089
02/15/2021, 7:46 PMgifted-terabyte-92288
02/15/2021, 10:39 PMbrave-planet-10645
02/16/2021, 9:24 AMmyLambdaFunction please?brave-planet-10645
02/16/2021, 9:42 AMbrave-planet-10645
02/16/2021, 9:42 AMbrave-planet-10645
02/16/2021, 9:43 AMhallowed-mouse-70261
02/16/2021, 2:59 PMhallowed-mouse-70261
02/16/2021, 4:30 PMimport { LocalWorkspace } from '@pulumi/pulumi/x/automation';
import * as aws from '@pulumi/aws';
import * as awsx from '@pulumi/awsx';
import * as pulumi from '@pulumi/pulumi';
export async function standup(): Promise<void> {
  const pulumiProgram = async (): Promise<any> => {
    const role = new aws.iam.Role('ruleReportsFuncRole', {
      assumeRolePolicy: {
        Version: '2012-10-17',
        Statement: [
          {
            Action: 'sts:AssumeRole',
            Principal: {
              Service: '<http://lambda.amazonaws.com|lambda.amazonaws.com>'
            },
            Effect: 'Allow',
            Sid: ''
          }
        ]
      }
    });
    const rolePolicyAttachment = new aws.iam.RolePolicyAttachment('rpa', {
      policyArn: aws.iam.ManagedPolicy.LambdaFullAccess,
      role: role
    });
    const lambdaFunction = new aws.lambda.Function('lambdafunction', {
      code: new pulumi.asset.AssetArchive({
        '.': new pulumi.asset.FileArchive('./app')
      }),
      role: role.arn,
      handler: 'index.lambdaCode',
      runtime: 'nodejs14.x'
    });
    const gateway = new awsx.apigateway.API(`my-lambda-gateway`, {
      routes: [
        {
          path: '/myLambdaFunction',
          method: 'POST',
          eventHandler: lambdaFunction
        }
      ]
    });
    return {
      url: gateway.url
    };
  };
  const args = {
    stackName: `myCompany/development-myusername-integration-my-lambda`,
    projectName: 'myCompany-my-project',
    program: pulumiProgram,
    workDir: '.'
  };
  const stack = await LocalWorkspace.createOrSelectStack(args);
  await stack.workspace.installPlugin('aws', 'v3.6.1');
  await stack.setConfig('aws:region', { value: 'us-east-2' });
  await stack.refresh({ onOutput: <http://console.info|console.info> });
  await stack.up({ onOutput: <http://console.info|console.info> });
}
and here's the error:
Diagnostics:
  pulumi:pulumi:Stack (myCompany-my-project-development-myusername-integration-my-lambda):
    error: update failed
 
  aws:apigateway:RestApi (my-lambda-gateway):
    error: 1 error occurred:
        * creating urn:pulumi:development-myusername-integration-my-lambda::myCompany-my-project::aws:apigateway:x:API$aws:apigateway/restApi:RestApi::my-lambda-gateway: 1 error occurred:
        * error creating API Gateway specification: BadRequestException: Errors found during import:
        Unable to put integration on 'POST' for resource at path '/myLambdaFunction': Invalid ARN specified in the request
    error: post-step event returned an error: failed to verify snapshot: resource urn:pulumi:development-myusername-integration-my-lambda::myCompany-my-project::aws:apigateway:x:API$aws:apigateway/restApi:RestApi::my-lambda-gateway dependency  refers to missing resourcebrave-planet-10645
02/17/2021, 2:27 PMbrave-planet-10645
02/17/2021, 2:28 PMgifted-terabyte-92288
02/17/2021, 2:29 PM