Issue pulling model from S3

Hi All,

I’ve been through every relevant post I can find and haven’t been able to resolve this.

I’m very confused about what the remote-storage option is doing when I launch a rasa container.

I have a pre-trained rasa model and I’ve uploaded it to the root of an s3 bucket (Preferably I’d like to read a model from any key but that’s a separate issue). I launch a container on ECS fargate with the following command in the task definition:

rasa run --port $${SELF_PORT} --remote-storage aws --model ${RASA_MODEL} --cors \"*\" --debug

Where

  • Rasa version: 2.4.1
  • RASA_MODEL is set to the model name e.g. rasa-2021-03-26-1040.tar.gz
  • BUCKET_NAME is set to mybucket
  • AWS_ENDPOINT_URL is set to “https://s3.eu-west-2.amazonaws.com

Credentials should be obtained from the container’s associated IAM policies which has s3:GetObject on mybucket/*.

The first relevant log output:

DEBUG root - Could not load interpreter from ‘rasa-2021-03-26-1040.tar.gz’.

Probably that’s looking for a local file of that name.

What happens next is rasa makes a call to create a bucket:

boto3.resources.action - Calling s3:create_bucket with {‘Bucket’: ‘mybucket’, ‘CreateBucketConfiguration’: {‘LocationConstraint’: ‘eu-west-2’}}

Why is it doing this? I’ve specified a bucket name and the name of a model. Shouldn’t it just try a get using the container credentials?

This obviously fails.

Then I get:

rasa.core.agent - Could not load model due to [Errno 13] Permission denied: ‘rasa-2021-03-26-1040.tar.gz’.

[93m/usr/local/lib/python3.7/site-packages/rasa/shared/utils/io.py:96: UserWarning: The model at ‘rasa-2021-03-26-1040.tar.gz’ could not be loaded. Error: <class ‘PermissionError’>: [Errno 13] Permission denied: ‘rasa-2021-03-26-1040.tar.gz’

Can anyone provide any thoughts on what I’m getting wrong here? Is this feature not designed to do what I am expecting?

Thanks

OK. I’ve resolved this.

The problem was actually the user being used in the container rather than the remote storage itself.

1 Like