Trigger AWS Lambda function with a string payload
up vote
0
down vote
favorite
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 |
up vote
0
down vote
favorite
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 |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
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 at 3:50
Zippie
4,91542139
4,91542139
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
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 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 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 at 4:54
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
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 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 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 at 4:54
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
add a comment |
up vote
0
down vote
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 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 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 at 4:54
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
add a comment |
up vote
0
down vote
up vote
0
down vote
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 at 4:04
snmaddula
1918
1918
1
Refer this lambda doc for detailed example.
– snmaddula
Nov 11 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 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 at 4:54
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
add a comment |
1
Refer this lambda doc for detailed example.
– snmaddula
Nov 11 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 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 at 4:54
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
1
1
Refer this lambda doc for detailed example.
– snmaddula
Nov 11 at 4:06
Refer this lambda doc for detailed example.
– snmaddula
Nov 11 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 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 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 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 at 4:54
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Unfortunately I do not have that option currently.
– Zippie
Nov 11 at 5:01
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
Okay. In case if you get to find some work around, please post it here.
– snmaddula
Nov 11 at 5:03
add a comment |
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