in src/Aspire.Hosting.AWS/Lambda/APIGatewayExtensions.cs [66:86]
public static IResourceBuilder<APIGatewayEmulatorResource> WithReference(this IResourceBuilder<APIGatewayEmulatorResource> builder, IResourceBuilder<LambdaProjectResource> lambda, Method httpMethod, string path)
{
LambdaEmulatorAnnotation? lambdaEmulatorAnnotation = null;
if (builder.ApplicationBuilder.Resources.FirstOrDefault(x => x.TryGetLastAnnotation<LambdaEmulatorAnnotation>(out lambdaEmulatorAnnotation)) == null ||
lambdaEmulatorAnnotation == null)
{
return builder;
}
builder.WithReference(lambdaEmulatorAnnotation.Endpoint);
builder.WithEnvironment(context =>
{
var envName = "APIGATEWAY_EMULATOR_ROUTE_CONFIG_" + lambda.Resource.Name;
var config = new RouteConfig(lambda.Resource.Name, lambdaEmulatorAnnotation.Endpoint.Url, httpMethod, path);
var configJson = JsonSerializer.Serialize(config);
context.EnvironmentVariables[envName] = configJson;
});
return builder;
}