Unable to access endpoints Rasa X on AWS EC2 Server

I followed the quick setup for docker-compose on the Rasa docs. I was able to access the Rasa X UI with https://mydomain.com and chat with the bot.

But I can’t seem to access any of the endpoints.

I even tried core that was suggested on this forum.

Docker Compose Installation

Any help will be greatly appreciated!

Hi @tanbui ! Did you update the credentials.yml file like it is done here?

Hi @hrabago, yes, i did updated the credentials.yml update for Slack and Facebook. I should be able to access any endpoints to check health, version, and status by default.

Server Information https://rasa.com/docs/rasa/pages/http-api/#tag/Server-Information

But I’m unable to access them.

Can you try

https://mydomain.com/api/health

Look like I can access:

what am I missing for webhooks endpoints?

Are you able to access the webhook URL within the EC2 instance itself? SSH into you EC2 instance and do a CURL call to the webhook URL.

Also, check your logs in the rasa-worker and rasa-production dockers when you start them, to see if the webhook has started in the first place. It should be under the “rasa.core.utils - Available web server routes:”

@YuaNWA - appreciate for your quick response and help on this matter.

ubuntu@ip-172-31-83-104:~$ curl --request POST http://localhost/webhooks/rest/webhook --data '{"message": "hello"}'

response:

Requested URL /webhooks/rest/webhook not found

how and where to check for the rasa-worker and rasa-production dockers?

I tried to access the /etc/rasa/logs directory. but don’t have permission.

ubuntu@ip-172-31-83-104:/etc/rasa$ cd logs
-bash: cd: logs: Permission denied

thanks.

You can access the logs for the dockers using

docker logs rasa_rasa-worker_1
docker logs rasa_rasa-production_1 

You might need to check on the correct container name using

docker ps 

If it doesn’t appear in the web server routes, then it is likely there is some issue with your credentials.yml that is causing RASA to not be able to create that webhook.

I ran both

sudo docker logs rasa_rasa-worker_1
sudo docker logs rasa_rasa-production_1 

but I don’t see “rasa.core.utils - Available web server routes:” in the log.

the credentials.yml file works fine locally using ngrok. I only added the facebook and slack entries to the default credentials.yml created by Rasa initial project.

@desmarchris We chatted last Wednesday on “Rasa Office Hours” streamed live. I’m still not able to access the endpoints. I did opened all ports traffic on AWS EC2 instance.

I tried to POST message to http://<host>:<port>/webhooks/rest/webhook as described in the documentation in REST Channels. I tried to POST via SSH into the instance.

I follow the same instructions from Rasa Livecoding: Setting up our Rasa X server on April 9, and the same result.

what am I missing?

Thanks,

Just curious, do you mind posting your credentials.yml file here?

@YuaNWA Here is my credentials.yml file.

# This file contains the credentials for the voice & chat platforms
# which your bot is using.
# https://rasa.com/docs/rasa/user-guide/messaging-and-voice-channels/

rest:
#  # you don't need to provide anything here - this channel doesn't
#  # require any credentials

facebook:
  verify: "tb_..."
  secret: "8fb404948df127....."
  page-access-token: "EAAlxVGrdRT4BAGPfQZAPNbF..."

#slack:
#  slack_token: "<your slack token>"
#  slack_channel: "<the slack channel>"

#socketio:
#  user_message_evt: <event name for user message>
#  bot_message_evt: <event name for but messages>
#  session_persistence: <true/false>


# This entry is needed if you are using Rasa X. The entry represents credentials 
# for the Rasa X "channel", i.e. Talk to your bot and Share with guest testers.
rasa:
  url: "http://localhost:5002/api"

Can you change your docker-compose file, with the section on the rasa services to this? Basically add the -vv flag to enable the printing of all debug statements.

x-rasa-services: &default-rasa-service
  restart: always
  image: "rasa"
  #image: "rasa/rasa:${RASA_VERSION}-full"
  volumes:
      - ./.config:/.config
  expose:
      - "5005"
  command: >
    x
    --no-prompt
    --production
    --config-endpoint http://rasa-x:5002/api/config?token=${RASA_X_TOKEN}
    --port 5005
    --jwt-method HS256
    --jwt-secret ${JWT_SECRET}
    --auth-token '${RASA_TOKEN}'
    --cors "*"
    -vv
  depends_on:
    - rasa-x
    - rabbit
    - redis

Do a docker-compose up -d to restart the dockers. Check the logs of your rasa_production docker and see if you see something like the following:

2021-04-22 03:50:05 DEBUG    rasa.core.utils  - Available web server routes: 
/conversations/<conversation_id:path>/messages     POST                           add_message
/conversations/<conversation_id:path>/tracker/events POST                           append_events
/auth                                              OPTIONS                        auth_bp.AuthenticateEndpoint
/auth/me                                           OPTIONS                        auth_bp.RetrieveUserEndpoint
/auth/verify                                       OPTIONS                        auth_bp.VerifyEndpoint
/webhooks/rasa                                     GET                            custom_webhook_RasaChatInput.health
/webhooks/rasa/webhook                             POST                           custom_webhook_RasaChatInput.receive
/webhooks/rest                                     GET                            custom_webhook_RestInput.health
/webhooks/rest/webhook                             POST                           custom_webhook_RestInput.receive
/model/test/intents                                POST                           evaluate_intents
/model/test/stories                                POST                           evaluate_stories
/conversations/<conversation_id:path>/execute      POST                           execute_action
/domain                                            GET                            get_domain
/socket.io                                         OPTIONS                        handle_request
/                                                  GET                            hello
/model                                             PUT                            load_model
/model/parse                                       POST                           parse
/conversations/<conversation_id:path>/predict      POST                           predict
/conversations/<conversation_id:path>/tracker/events PUT                            replace_events
/conversations/<conversation_id:path>/story        GET                            retrieve_story
/conversations/<conversation_id:path>/tracker      GET                            retrieve_tracker
/webhooks/socketio                                 GET                            socketio_webhook.health
/status                                            GET                            status
/model/predict                                     POST                           tracker_predict
/model/train                                       POST                           train
/conversations/<conversation_id:path>/trigger_intent POST                           trigger_intent
/model                                             DELETE                         unload_model
/version                                           GET                            version