Trigger AWS Lambda function with a string payload
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
add a comment |
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
add a comment |
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
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
java amazon-web-services aws-lambda
asked Nov 11 '18 at 3:50
ZippieZippie
4,95542340
4,95542340
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
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
|
show 1 more comment
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
|
show 1 more comment
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.
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
|
show 1 more comment
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.
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.
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
|
show 1 more comment
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
|
show 1 more comment
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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