コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        public async Task TestToUpperFunction()
        {
            var function = new Function();
            var context  = new TestLambdaContext();
            var request  = new CloudFormationEvent <RunTerraformRequest>
            {
            };

            await function.FunctionHandler(request, context);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 private Task <object> Update(CloudFormationEvent <RunTerraformRequest> input, ILambdaContext context)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
 private Task <object> Create(CloudFormationEvent <StartCodeBuild> @event, ILambdaContext context)
 {
     return(Task.FromResult <object>(new { SomeData = "some data", Step = "Create" }));
 }