Trigger AWS Lambda function with a string payload










0















I have a function on AWS Lambda written in Java that can currently only accept text event data, not JSON.



Whenever I go in the test console, if my test event has a payload of "", the function runs, however if it's a json, it does not.



If I run it with any of the triggers, such as S3, CloudWatch Events or with a API Gateway, they always send out a json.



Is there by any chance a possibility to run those triggers and make them send a string payload instead of a json payload?










share|improve this question


























    0















    I have a function on AWS Lambda written in Java that can currently only accept text event data, not JSON.



    Whenever I go in the test console, if my test event has a payload of "", the function runs, however if it's a json, it does not.



    If I run it with any of the triggers, such as S3, CloudWatch Events or with a API Gateway, they always send out a json.



    Is there by any chance a possibility to run those triggers and make them send a string payload instead of a json payload?










    share|improve this question
























      0












      0








      0








      I have a function on AWS Lambda written in Java that can currently only accept text event data, not JSON.



      Whenever I go in the test console, if my test event has a payload of "", the function runs, however if it's a json, it does not.



      If I run it with any of the triggers, such as S3, CloudWatch Events or with a API Gateway, they always send out a json.



      Is there by any chance a possibility to run those triggers and make them send a string payload instead of a json payload?










      share|improve this question














      I have a function on AWS Lambda written in Java that can currently only accept text event data, not JSON.



      Whenever I go in the test console, if my test event has a payload of "", the function runs, however if it's a json, it does not.



      If I run it with any of the triggers, such as S3, CloudWatch Events or with a API Gateway, they always send out a json.



      Is there by any chance a possibility to run those triggers and make them send a string payload instead of a json payload?







      java amazon-web-services aws-lambda






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 11 '18 at 3:50









      ZippieZippie

      4,95542340




      4,95542340






















          1 Answer
          1






          active

          oldest

          votes


















          0














          To accept JSON as input, you need to update your RequestHandler<JSONObject, String> and



          public class Hello implements RequestHandler<JSONObject, String>
          public String myHandler(JSONObject jsonObj, Context context)
          // add your processing logic.
          return "done!";




          Alternatively, you can define a POJO with the attributes of your json payload like



          class Payload 
          //fields
          //setter & getter



          And use this Payload type in your RequestHandler as



          public class Hello implements RequestHandler<Payload, String>
          public String myHandler(Payload payload, Context context)
          // add your processing logic.
          return "done!";




          Here String is your output data type. If its different in your case, you need to change that as well.






          share|improve this answer


















          • 1





            Refer this lambda doc for detailed example.

            – snmaddula
            Nov 11 '18 at 4:06











          • Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

            – Zippie
            Nov 11 '18 at 4:22






          • 1





            Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

            – snmaddula
            Nov 11 '18 at 4:54











          • Unfortunately I do not have that option currently.

            – Zippie
            Nov 11 '18 at 5:01











          • Okay. In case if you get to find some work around, please post it here.

            – snmaddula
            Nov 11 '18 at 5:03










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245692%2ftrigger-aws-lambda-function-with-a-string-payload%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          To accept JSON as input, you need to update your RequestHandler<JSONObject, String> and



          public class Hello implements RequestHandler<JSONObject, String>
          public String myHandler(JSONObject jsonObj, Context context)
          // add your processing logic.
          return "done!";




          Alternatively, you can define a POJO with the attributes of your json payload like



          class Payload 
          //fields
          //setter & getter



          And use this Payload type in your RequestHandler as



          public class Hello implements RequestHandler<Payload, String>
          public String myHandler(Payload payload, Context context)
          // add your processing logic.
          return "done!";




          Here String is your output data type. If its different in your case, you need to change that as well.






          share|improve this answer


















          • 1





            Refer this lambda doc for detailed example.

            – snmaddula
            Nov 11 '18 at 4:06











          • Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

            – Zippie
            Nov 11 '18 at 4:22






          • 1





            Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

            – snmaddula
            Nov 11 '18 at 4:54











          • Unfortunately I do not have that option currently.

            – Zippie
            Nov 11 '18 at 5:01











          • Okay. In case if you get to find some work around, please post it here.

            – snmaddula
            Nov 11 '18 at 5:03















          0














          To accept JSON as input, you need to update your RequestHandler<JSONObject, String> and



          public class Hello implements RequestHandler<JSONObject, String>
          public String myHandler(JSONObject jsonObj, Context context)
          // add your processing logic.
          return "done!";




          Alternatively, you can define a POJO with the attributes of your json payload like



          class Payload 
          //fields
          //setter & getter



          And use this Payload type in your RequestHandler as



          public class Hello implements RequestHandler<Payload, String>
          public String myHandler(Payload payload, Context context)
          // add your processing logic.
          return "done!";




          Here String is your output data type. If its different in your case, you need to change that as well.






          share|improve this answer


















          • 1





            Refer this lambda doc for detailed example.

            – snmaddula
            Nov 11 '18 at 4:06











          • Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

            – Zippie
            Nov 11 '18 at 4:22






          • 1





            Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

            – snmaddula
            Nov 11 '18 at 4:54











          • Unfortunately I do not have that option currently.

            – Zippie
            Nov 11 '18 at 5:01











          • Okay. In case if you get to find some work around, please post it here.

            – snmaddula
            Nov 11 '18 at 5:03













          0












          0








          0







          To accept JSON as input, you need to update your RequestHandler<JSONObject, String> and



          public class Hello implements RequestHandler<JSONObject, String>
          public String myHandler(JSONObject jsonObj, Context context)
          // add your processing logic.
          return "done!";




          Alternatively, you can define a POJO with the attributes of your json payload like



          class Payload 
          //fields
          //setter & getter



          And use this Payload type in your RequestHandler as



          public class Hello implements RequestHandler<Payload, String>
          public String myHandler(Payload payload, Context context)
          // add your processing logic.
          return "done!";




          Here String is your output data type. If its different in your case, you need to change that as well.






          share|improve this answer













          To accept JSON as input, you need to update your RequestHandler<JSONObject, String> and



          public class Hello implements RequestHandler<JSONObject, String>
          public String myHandler(JSONObject jsonObj, Context context)
          // add your processing logic.
          return "done!";




          Alternatively, you can define a POJO with the attributes of your json payload like



          class Payload 
          //fields
          //setter & getter



          And use this Payload type in your RequestHandler as



          public class Hello implements RequestHandler<Payload, String>
          public String myHandler(Payload payload, Context context)
          // add your processing logic.
          return "done!";




          Here String is your output data type. If its different in your case, you need to change that as well.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 '18 at 4:04









          snmaddulasnmaddula

          347111




          347111







          • 1





            Refer this lambda doc for detailed example.

            – snmaddula
            Nov 11 '18 at 4:06











          • Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

            – Zippie
            Nov 11 '18 at 4:22






          • 1





            Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

            – snmaddula
            Nov 11 '18 at 4:54











          • Unfortunately I do not have that option currently.

            – Zippie
            Nov 11 '18 at 5:01











          • Okay. In case if you get to find some work around, please post it here.

            – snmaddula
            Nov 11 '18 at 5:03












          • 1





            Refer this lambda doc for detailed example.

            – snmaddula
            Nov 11 '18 at 4:06











          • Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

            – Zippie
            Nov 11 '18 at 4:22






          • 1





            Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

            – snmaddula
            Nov 11 '18 at 4:54











          • Unfortunately I do not have that option currently.

            – Zippie
            Nov 11 '18 at 5:01











          • Okay. In case if you get to find some work around, please post it here.

            – snmaddula
            Nov 11 '18 at 5:03







          1




          1





          Refer this lambda doc for detailed example.

          – snmaddula
          Nov 11 '18 at 4:06





          Refer this lambda doc for detailed example.

          – snmaddula
          Nov 11 '18 at 4:06













          Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

          – Zippie
          Nov 11 '18 at 4:22





          Thank you for your response, however that was not the question. I am aware that that is the way to accept JSON payloads, I was asking how to configure lambda to sendout String payloads (like it does in the test console).

          – Zippie
          Nov 11 '18 at 4:22




          1




          1





          Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

          – snmaddula
          Nov 11 '18 at 4:54





          Referring to CloudWatch and S3 these services will send out a serialized JSON object as payload. So you can update your lambda handler to accept JSON payload instead of String payload, if you feel its feasible.

          – snmaddula
          Nov 11 '18 at 4:54













          Unfortunately I do not have that option currently.

          – Zippie
          Nov 11 '18 at 5:01





          Unfortunately I do not have that option currently.

          – Zippie
          Nov 11 '18 at 5:01













          Okay. In case if you get to find some work around, please post it here.

          – snmaddula
          Nov 11 '18 at 5:03





          Okay. In case if you get to find some work around, please post it here.

          – snmaddula
          Nov 11 '18 at 5:03

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245692%2ftrigger-aws-lambda-function-with-a-string-payload%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

          How do I collapse sections of code in Visual Studio Code for Windows?

          ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ