/// <summary> /// Updates the AWS Lambda functions code. /// </summary> /// <param name="functionName">The name of an AWS Lambda function.</param> /// <param name="settings">The <see cref="UpdateFunctionCodeSettings"/> used during the request to AWS.</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> public async Task <string> UpdateFunctionCode(string functionName, UpdateFunctionCodeSettings settings, CancellationToken cancellationToken = default(CancellationToken)) { if (String.IsNullOrEmpty(functionName)) { throw new ArgumentNullException(nameof(functionName)); } // Create Request AmazonLambdaClient client = this.CreateClient(settings); UpdateFunctionCodeRequest request = new UpdateFunctionCodeRequest() { FunctionName = functionName, Publish = settings.Publish, DryRun = settings.DryRun, S3Bucket = settings.S3Bucket, S3Key = settings.S3Key, S3ObjectVersion = settings.S3Version, ZipFile = settings.ZipFile }; if (settings.ZipPath != null) { request.ZipFile = this.GetFileStream(settings.ZipPath, settings); } // Check Response UpdateFunctionCodeResponse response = await client.UpdateFunctionCodeAsync(request, cancellationToken); if (response.HttpStatusCode == HttpStatusCode.OK) { _Log.Verbose("Successfully updated function '{0}'", functionName); return(response.Version); } else { _Log.Error("Failed to update function '{0}'", functionName); return(""); } }
/// <summary> /// 修改指定函数代码 /// </summary> public static void UpdateFunctionCode(FunctionGraphClient client) { UpdateFunctionCodeRequest req = new UpdateFunctionCodeRequest { FunctionUrn = "urn:fss:cn-north-7:46b6f338fc3445b8846c71dfb1fbd9e8:function:CsharpSdkTest:csharpSdkTest:latest", Body = new UpdateFunctionCodeRequestBody { CodeType = UpdateFunctionCodeRequestBody.CodeTypeEnum.INLINE, CodeFilename = "index.zip", FuncCode = new FuncCode { File = "UEsDBAoAAAAAAGIXhk0Ac1L2tgAAALYAAAAIAAAAaW5kZXguanNleHBvcnRzLmhhbmRsZXIgPSBmdW5jdGlvbiAoZXZlbnQsIGNvbnRleHQsIGNhbGxiYWNrKSB7DQogICAgY29uc3QgZXJyb3IgPSBudWxsOw0KICAgIGNvbnN0IG91dHB1dCA9IGBIZWxsbyB3b3JsZCBtZXNzYWdlOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX1gOw0KICAgIGNhbGxiYWNrKGVycm9yLCBvdXRwdXQpOw0KfVBLAQIeAwoAAAAAAGIXhk0Ac1L2tgAAALYAAAAIAAAAAAAAAAAAAAC0gQAAAABpbmRleC5qc1BLBQYAAAAAAQABADYAAADcAAAAAAA=" } } }; try { UpdateFunctionCodeResponse resp = client.UpdateFunctionCode(req); Console.WriteLine("UpdateFunctionCode Body=" + JsonConvert.SerializeObject(resp)); Console.WriteLine("func_name=" + resp.FuncName); Console.WriteLine("func_urn=" + resp.FuncUrn); Console.WriteLine("UpdateFunctionCode StatusCode=" + resp.HttpStatusCode); } catch (ClientRequestException e) { Console.WriteLine(e.HttpStatusCode); Console.WriteLine(e.ErrorCode); Console.WriteLine(e.ErrorMsg); } catch (ConnectionException e) { Console.WriteLine(e.ErrorMessage); } catch (Exception e) { Console.WriteLine(e); throw; } }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { UpdateFunctionCodeResponse response = new UpdateFunctionCodeResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("CodeSha256", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.CodeSha256 = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("CodeSize", targetDepth)) { var unmarshaller = LongUnmarshaller.Instance; response.CodeSize = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Description", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Description = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("FunctionArn", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.FunctionArn = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("FunctionName", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.FunctionName = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Handler", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Handler = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("LastModified", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.LastModified = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("MemorySize", targetDepth)) { var unmarshaller = IntUnmarshaller.Instance; response.MemorySize = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Role", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Role = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Runtime", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Runtime = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Timeout", targetDepth)) { var unmarshaller = IntUnmarshaller.Instance; response.Timeout = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Version", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Version = unmarshaller.Unmarshall(context); continue; } } return(response); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { UpdateFunctionCodeResponse response = new UpdateFunctionCodeResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("CodeSha256", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.CodeSha256 = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("CodeSize", targetDepth)) { var unmarshaller = LongUnmarshaller.Instance; response.CodeSize = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("DeadLetterConfig", targetDepth)) { var unmarshaller = DeadLetterConfigUnmarshaller.Instance; response.DeadLetterConfig = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Description", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Description = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Environment", targetDepth)) { var unmarshaller = EnvironmentResponseUnmarshaller.Instance; response.Environment = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("FunctionArn", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.FunctionArn = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("FunctionName", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.FunctionName = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Handler", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Handler = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("KMSKeyArn", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.KMSKeyArn = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("LastModified", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.LastModified = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("LastUpdateStatus", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.LastUpdateStatus = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("LastUpdateStatusReason", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.LastUpdateStatusReason = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("LastUpdateStatusReasonCode", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.LastUpdateStatusReasonCode = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Layers", targetDepth)) { var unmarshaller = new ListUnmarshaller <Layer, LayerUnmarshaller>(LayerUnmarshaller.Instance); response.Layers = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("MasterArn", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.MasterArn = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("MemorySize", targetDepth)) { var unmarshaller = IntUnmarshaller.Instance; response.MemorySize = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("RevisionId", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.RevisionId = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Role", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Role = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Runtime", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Runtime = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("State", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.State = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("StateReason", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.StateReason = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("StateReasonCode", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.StateReasonCode = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Timeout", targetDepth)) { var unmarshaller = IntUnmarshaller.Instance; response.Timeout = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("TracingConfig", targetDepth)) { var unmarshaller = TracingConfigResponseUnmarshaller.Instance; response.TracingConfig = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Version", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Version = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("VpcConfig", targetDepth)) { var unmarshaller = VpcConfigDetailUnmarshaller.Instance; response.VpcConfig = unmarshaller.Unmarshall(context); continue; } } return(response); }