Server mode¶
Moto has a stand-alone server mode. This allows you to utilize the backend structure of Moto even if you don’t use Python.
It uses flask, which isn’t a default dependency. You can install the server ‘extra’ package with:
pip install moto[server]
You can then start it running a service:
$ moto_server ec2
You can also pass the port:
$ moto_server ec2 -p3000
* Running on http://127.0.0.1:3000/
If you want to be able to use the server externally you can pass an IP address to bind to as a hostname or allow any of your external interfaces with 0.0.0.0:
$ moto_server ec2 -H 0.0.0.0
* Running on http://0.0.0.0:5000/
Please be aware this might allow other network users to access your server.
Then go to localhost to see a list of running instances (it will be empty since you haven’t added any yet).
If you want to use boto3 with this, you can pass an endpoint_url to the resource
boto3.resource(
service_name='s3',
region_name='us-west-1',
endpoint_url='http://localhost:5000',
)
Other languages¶
You don’t need to use Python to use Moto; it can be used with any language. Here are some examples to run it with other languages: