Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import * as cdk from '@aws-cdk/core'; import * as apigateway from '@aws-cdk/aws-apigateway'; import * as lambda from '@aws-cdk/aws-lambda'; import * as path from 'path'; enum BREF_LAYER_VERSION { PHP_73_FPM = 'arn:aws:lambda:ap-northeast-1:209497400698:layer:php-73-fpm:24', PHP_74_FPM = 'arn:aws:lambda:ap-northeast-1:209497400698:layer:php-74-fpm:10', PHP_73 = 'arn:aws:lambda:ap-northeast-1:209497400698:layer:php-73:24', PHP_74 = 'arn:aws:lambda:ap-northeast-1:209497400698:layer:php-74:10', } export interface ServerlessApiProps { /** * custom lambda function for the API * * @default - A Lambda function with Lavavel and Bref support will be created */ readonly handler?: lambda.IFunction; /** * custom lambda code asset path * * @default - DEFAULT_LAMBDA_ASSET_PATH */ readonly lambdaCodePath?: string; } export class ServerlessApi extends cdk.Construct { readonly handler: lambda.IFunction constructor(scope: cdk.Construct, id: string, props?: ServerlessApiProps) { super(scope, id); const DEFAULT_LAMBDA_ASSET_PATH = path.join(__dirname, '../composer/laravel58-bref') this.handler = props?.handler ?? new lambda.Function(this, 'handler', { runtime: lambda.Runtime.PROVIDED, handler: 'public/index.php', layers: [ lambda.LayerVersion.fromLayerVersionArn(this, 'BrefPHPLayer', BREF_LAYER_VERSION.PHP_74_FPM), ], code: lambda.Code.fromAsset(props?.lambdaCodePath ?? DEFAULT_LAMBDA_ASSET_PATH), environment: { APP_STORAGE: '/tmp', }, timeout: cdk.Duration.seconds(120), }); new apigateway.LambdaRestApi(this, 'apiservice', { handler: this.handler, }); } } |