【问题标题】:Triggering one lambda to another using C# .net使用 C# .net 触发一个 lambda 到另一个
【发布时间】:2018-12-12 03:00:31
【问题描述】:

我有两个 lambda。一种是用java编写的,一种是用.net编写的。我只想从.net 触发 lambda(java)。

下面是我用来触发 lambda 的代码

        var awsLmabdaClient = new AmazonLambdaClient(Amazon.RegionEndpoint.USWest2);
        Dictionary<string, string> dict = new Dictionary<string, string>();
        dict.Add("fileGuid", fileGuid);
        InvokeRequest Ir = new InvokeRequest
        {
            FunctionName = "FunctionName",
            Payload = dict.ToString()
        };
        awsLmabdaClient.InvokeAsync(Ir);

我检查了 AWS 中的 cloudwatch 日志,但它没有根据代码显示任何错误或异常。任何帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: .net aws-lambda aws-sdk


    【解决方案1】:

    更简单的方法是:使用 cloudwatch 指标调用第二个 lambda 函数

    1. 每次调用 lambda 时,都会在 cloudwatch 中维护日志
    2. 您可以将这些日志用作第二个 lambda 函数的触发器

    您可以按照文档进行操作:

    https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/RunLambdaSchedule.html

    【讨论】:

      【解决方案2】:

      基本 System.Object 类提供的 .ToString() 的默认实现实际上会为您提供类型的完整名称,包括命名空间。

      在你的情况下,Payload 会有一些类似“System.Collection.Generic.Dictionary[system.String, System.String]”的东西, 而你会想要 JSON 字符串。

      你可以尝试玩一些类似的东西。

          {
              FunctionName = "FunctionName",
              Payload = JObject.Parse(JsonConvert.SerializeObject(dict).ToString())
          };
      

      您的有效负载现在将是 "{\r\n \"fileGuid\": \"fileGuid\"\r\n}" 。

      并将 Input 参数设置为被调用的 Lambda 的 JObject,并从 JObject 获取您的值。

      【讨论】:

        【解决方案3】:

        我尝试了以下代码,它对我有用。 PayloadJObj 是一个 Jobject

        using (AmazonLambdaClient client = new AmazonLambdaClient(RegionEndpoint.APSoutheast2))
                {
                  var request = new InvokeRequest
                    {   FunctionName = "YourLambdaFunctionName",
                        InvocationType = InvocationType.Event,
                        Payload = PayloadJObj.ToString()
                     };
        
                   var response =  client.InvokeAsync(request).GetAwaiter().GetResult(); 
        
                }
        

        【讨论】:

          猜你喜欢
          • 2018-06-18
          • 2020-11-06
          • 1970-01-01
          • 2018-01-08
          • 2022-06-13
          • 1970-01-01
          • 2018-04-09
          • 1970-01-01
          相关资源
          最近更新 更多