MCPcopy Create free account
hub / github.com/aws-samples/aws-cdk-examples / NewHttpapiLambdaStack

Function NewHttpapiLambdaStack

go/httpapi-lambda/httpapi-lambda.go:17–52  ·  view source on GitHub ↗
(scope constructs.Construct, id string, props *HttpapiLambdaStackProps)

Source from the content-addressed store, hash-verified

15}
16
17func 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
54func main() {
55 app := awscdk.NewApp(nil)

Callers 2

TestHttpapiLambdaStackFunction · 0.85
mainFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestHttpapiLambdaStackFunction · 0.68