/// <summary> /// A simple function that takes a string and does a ToUpper /// </summary> /// <param name="input"></param> /// <param name="context"></param> /// <returns></returns> public async Task FunctionHandler(CloudFormationEvent <RunTerraformRequest> input, ILambdaContext context) { var json = JsonConvert.SerializeObject(input, Formatting.Indented); context.Logger.LogLine(json); object data; try { switch (input.RequestType) { case RequestType.Create: data = await Create(input, context); break; case RequestType.Update: data = await Update(input, context); break; case RequestType.Delete: data = await Delete(input, context); break; } //return await CloudFormationResponse.CompleteCloudFormationResponse(new { SomeData = "some data" }, input, context); } catch (Exception ex) { //return await CloudFormationResponse.CompleteCloudFormationResponse(new { Error = ex.ToString() }, input, context); } }
public async Task <CloudFormationResponse> FunctionHandler(CloudFormationEvent <StartCodeBuild> @event, ILambdaContext context) { var json = JsonConvert.SerializeObject(@event, Formatting.Indented); context.Logger.LogLine(json); object data; try { switch (@event.RequestType) { case RequestType.Create: data = await Create(@event, context); break; case RequestType.Update: data = await Update(@event, context); break; case RequestType.Delete: data = await Delete(@event, context); break; } return(await CloudFormationResponse.CompleteCloudFormationResponse(new { SomeData = "some data" }, @event, context)); } catch (Exception ex) { return(await CloudFormationResponse.CompleteCloudFormationResponse(new { Error = ex.ToString() }, @event, context)); } }
public async Task TestToUpperFunction() { var function = new Function(); var context = new TestLambdaContext(); var request = new CloudFormationEvent <RunTerraformRequest> { }; await function.FunctionHandler(request, context); }
private async Task <object> Create(CloudFormationEvent <RunTerraformRequest> input, ILambdaContext context) { var client = new AmazonCodeBuildClient(); var request = new StartBuildRequest { EnvironmentVariablesOverride = BuildEnvironmentVariables(input) }; var response = await client.StartBuildAsync(request); return(null); }
private List <EnvironmentVariable> BuildEnvironmentVariables(CloudFormationEvent <RunTerraformRequest> input) { var list = new List <EnvironmentVariable> { //new EnvironmentVariable { Name = "CFN_REQUEST", Value = JsonConvert.SerializeObject(input) } new EnvironmentVariable { Name = "CFN_CloudFormationRequest:RequestId", Value = input.RequestId }, new EnvironmentVariable { Name = "CFN_CloudFormationRequest:RequestType", Value = input.RequestType.ToString() }, new EnvironmentVariable { Name = "CFN_CloudFormationRequest:StackId", Value = input.StackId }, new EnvironmentVariable { Name = "CFN_CloudFormationRequest:ResponseURL", Value = input.ResponseURL }, new EnvironmentVariable { Name = "CFN_CloudFormationRequest:ResourceProperties:Version", Value = input.ResourceProperties.Version } }; return(list); }
private Task <object> Update(CloudFormationEvent <RunTerraformRequest> input, ILambdaContext context) { throw new NotImplementedException(); }
private Task <object> Create(CloudFormationEvent <StartCodeBuild> @event, ILambdaContext context) { return(Task.FromResult <object>(new { SomeData = "some data", Step = "Create" })); }