(scope constructs.Construct, id string, props *HttpapiLambdaStackProps)
| 15 | } |
| 16 | |
| 17 | func NewHttpapiLambdaStack(scope constructs.Construct, id string, props *HttpapiLambdaStackProps) awscdk.Stack { |
| 18 | var sprops awscdk.StackProps |
| 19 | if props != nil { |
| 20 | sprops = props.StackProps |
| 21 | } |
| 22 | stack := awscdk.NewStack(scope, &id, &sprops) |
| 23 | |
| 24 | // create Lambda function |
| 25 | getHandler := awscdklambdagoalpha.NewGoFunction(stack, jsii.String("myGoHandler"), &awscdklambdagoalpha.GoFunctionProps{ |
| 26 | Runtime: awslambda.Runtime_PROVIDED_AL2023(), |
| 27 | Entry: jsii.String("./lambda-handler"), |
| 28 | Bundling: &awscdklambdagoalpha.BundlingOptions{ |
| 29 | GoBuildFlags: jsii.Strings(`-ldflags "-s -w"`), |
| 30 | }, |
| 31 | }) |
| 32 | |
| 33 | // create HTTP API |
| 34 | httpApi := awsapigatewayv2.NewHttpApi(stack, jsii.String("myHttpApi"), &awsapigatewayv2.HttpApiProps{ |
| 35 | ApiName: jsii.String("myHttpApi"), |
| 36 | }) |
| 37 | |
| 38 | // add route to HTTP API |
| 39 | httpApi.AddRoutes(&awsapigatewayv2.AddRoutesOptions{ |
| 40 | Path: jsii.String("/"), |
| 41 | Methods: &[]awsapigatewayv2.HttpMethod{awsapigatewayv2.HttpMethod_GET}, |
| 42 | Integration: awsapigatewayv2integrations.NewHttpLambdaIntegration(jsii.String("MyHttpLambdaIntegration"), getHandler, &awsapigatewayv2integrations.HttpLambdaIntegrationProps{}), |
| 43 | }) |
| 44 | |
| 45 | // log HTTP API endpoint |
| 46 | awscdk.NewCfnOutput(stack, jsii.String("myHttpApiEndpoint"), &awscdk.CfnOutputProps{ |
| 47 | Value: httpApi.ApiEndpoint(), |
| 48 | Description: jsii.String("HTTP API Endpoint"), |
| 49 | }) |
| 50 | |
| 51 | return stack |
| 52 | } |
| 53 | |
| 54 | func main() { |
| 55 | app := awscdk.NewApp(nil) |
no outgoing calls