From @jayair on Fri Oct 06 2017 22:39:26 GMT+0000 (UTC)
Link to chapter - https://serverless-stack.com/chapters/debugging-serverless-api-issues.html
Copied from original issue: https://github.com/AnomalyInnovations/serverless-stack-com/issues/147
From @hollyewhite on Wed Nov 08 2017 17:13:38 GMT+0000 (UTC)
Hi there!
Question for you. Might be a newbie one -
When I try to invoke the role in the policy simulator, I donât have the same options as you. Hereâs what I have: https://screencast.com/t/izAbP7wm Any idea why?
Trying to troubleshoot a status 403!
Thanks in advance!
-Holly
From @jayair on Thu Nov 09 2017 18:40:19 GMT+0000 (UTC)
@hollyewhite Yeah it looks like theyâve changed the interface a bit. But I tried it just now with the same instructions in the tutorial and it worked.
Weâll update the screenshots soon. But let me know if this doesnât work for you.
From @jayair on Fri Nov 10 2017 00:50:07 GMT+0000 (UTC)
@hollyewhite Just updated the screenshots - https://github.com/AnomalyInnovations/serverless-stack-com/commit/02bb75eeb579f36397bd2402cc7f21e7295ff1ce
From @hollyewhite on Fri Nov 10 2017 00:56:35 GMT+0000 (UTC)
Thank you @jayair! I appreciate it. I ended up having a credential issue. There are so many! I might hit you up for more questions though. This is my first time building a serverless app and honestly, I donât know how I would have figured it out without this tutorial. Youâre a rockstar.
From @l0rdr4t on Sun Nov 19 2017 05:47:01 GMT+0000 (UTC)
Iâm currently walking through this tutorial (awesome work, by the way). My apig-test was throwing a â403 Forbiddenâ:
Message: 'User: arn:aws:sts::123456789012:assumed-role/Cognito_testAuth_Role/CognitoIdentityCredentials is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:ap-southeast-2:********5495:a1b2c3d4e5/prod/POST/notes' }
I had to edit the Cognito Auth_Role policy and add the ExecuteAPI service â this made the API start working, and now Iâm wondering if I did something wrong or a step is missing from the Role creation?
From @jayair on Wed Nov 22 2017 18:17:29 GMT+0000 (UTC)
@l0rdr4t In this chapter - https://serverless-stack.com/chapters/create-a-cognito-identity-pool.html we add a line to the auth role. Is that the one you had to do?
From @l0rdr4t on Thu Nov 23 2017 16:10:54 GMT+0000 (UTC)
@jayair Thanks for the reply, and yes â now I know where I went wrong; user error and not the documentation!
In my project, the end user wonât be uploading documents to an S3 bucket. I intentionally left out the Policy Action s3:* but accidentally left out Policy Action execute-api:Invoke, which was in the same code block.
From @jayair on Sun Nov 26 2017 18:22:13 GMT+0000 (UTC)
@l0rdr4t Thanks for reporting back!
From @nuyulcore on Wed Mar 28 2018 11:45:37 GMT+0000 (UTC)
Hello I got this message, when I try to add new note.
âNo credentialsâ Everbody know how to solve it?
From @jayair on Wed Mar 28 2018 15:10:54 GMT+0000 (UTC)
@mbahfauz Can I see the full error?
I stop at the âTest the APIâ because the error came from executing the following statement.
Making API request
{ status: 403,
statusText: 'Forbidden',
data: { Message: 'User: arn:aws:sts::********4193:assumed-role/Cognito_notesidentitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-east-1:********4193:*******j67/dev/POST/notes' } }
Then I following the âDebugging the Serverless API issuesâ. I start the IAM Policy Simulator, I got this error message Implicitly denied (no matching statements). This is the ARN "arn:aws:executeapi:us-east-1:*:*******j67/*". The *******j67 come from "POST - https://*******j67.execute-api.us-east-1.amazonaws.com/dev/notes
.
This is the warning from Execute API You chose actions that require the execute-api-general resource type" and from Resource "One or more actions may not support this resource.
.
Thanks for the help,
James
Can you make sure that this block has been added properly
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:execute-api:YOUR_API_GATEWAY_REGION:*:YOUR_API_GATEWAY_ID/*"
]
}
This is a part of this chapter - https://serverless-stack.com/chapters/create-a-cognito-identity-pool.html.
I copy from the instructions
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*",
"cognito-identity:*"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::notes-upload-16/private/${cognito-identity.amazonaws.com:sub}/*"
]
},
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:executeapi:us-east-1:*:*******j67/*"
]
}
]
}
You might be missing a hyphen here executeapi
. It should be execute-api
.
Yes. Itâs worked now. The return status is 200.
Thanks for the help,
James
Hello. Basically I followed the guide step by step and when I reached the Create Note page chapter, the response to clicking the Create Button is an alert box saying âError: Network Errorâ, in console it says:
âCross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://vipxx07lin.execute-api.us-east-2.amazonaws.com/prod/notes. (Reason: CORS header âAccess-Control-Allow-Originâ missing).â.
I was adviced by Jay to enable logging in Cloudwatch. Followed this guide:
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
After the guide, waited a few minutes, recreated the error but in Cloudwatch I canât see any new logs. Please help and please specify detailed instructions for logging if necessary.
Sorry I should have been more specific. You need to enable API Gateway and Lambda logs. Not sure if youâve done that yet.
Thanks for the answer Jay. Yes I have enabled Cloudwatch logging of both. I went to
IAM > Roles> APIGatewayCloudWatchLogs,
IAM > Roles> notes-app-api-prod-us-east-2-lambdaRole
then to permissions tab and JSON button. Both have this block:
{
âEffectâ: âAllowâ,
âActionâ: [
âlogs:CreateLogGroupâ,
âlogs:CreateLogStreamâ,
âlogs:PutLogEventsâ,
âlogs:DescribeLogStreamsâ
],
âResourceâ: [
âarn:aws:logs:::*â
]
}
I see. In that case letâs do a quick check. Can you post your serverless.yml
here?