Teko ke karolo ea bohlokoa ea ts'ebetso ea nts'etsopele. 'Me ka linako tse ling bahlahisi ba hloka ho etsa liteko sebakeng sa heno, pele ba etsa liphetoho.
Haeba sesebelisoa se sebetsa Amazon Web Services, python laeborari moto, e phethahetseng bakeng sa sena.
Lethathamo le felletseng la ts'ebeliso ea lisebelisoa le ka bonoa
Ho na le turnip ho Github Hugo Picado -
Ho lokile, ho bonolo ho e lokisa.
Ho tloha ha o qala o hloka ho hlakisa mofuta oa tšebeletso (romeletsa feto-fetoha MOTO_SERVICE), re tlameha feela ho hlalosa pōpo ea mohloli.
Ha re e fetoleng hanyane qala.sh:
Sebakeng seo
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT
Kenya:
if [ -f /opt/init/bootstrap.py ]; then
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT & (sleep 5 && echo "Executing bootstrap script." && python /opt/init/bootstrap.py)
else
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT
fi
wait
Faele ea ho qetela ke:
qala.sh
#!/bin/sh
# validate required input
if [ -z "$MOTO_SERVICE" ]; then
echo "Please define AWS service to run with Moto Server (e.g. s3, ec2, etc)"
exit 1
fi
# setting defaults for optional input
if [ -z "$MOTO_HOST" ]; then
MOTO_HOST="0.0.0.0"
fi
if [ -z "$MOTO_PORT" ]; then
MOTO_PORT="5000"
fi
echo "Starting service $MOTO_SERVICE at $MOTO_HOST:$MOTO_PORT"
if [ -f /opt/init/bootstrap.py ]; then
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT & (sleep 5 && echo "Executing bootstrap script." && python /opt/init/bootstrap.py)
else
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT
fi
# Prevent container from exiting when bootstrap.py finishing
wait
Re theha setšoantšo se secha ebe re se sutumelletsa ho registry ea rona.
Ka mor'a moo, a re ngoleng lengolo la ho qala lisebelisoa, mohlala Sebaka sa marang-rang sa SWF, ho sebelisa laebrari ho sebetsa le AWS - boto3:
bootstrap_swf.py
import boto3
from botocore.exceptions import ClientError
import os
os.environ["AWS_ACCESS_KEY_ID"] = "fake"
os.environ["AWS_SECRET_ACCESS_KEY"] = "fake"
client = boto3.client('swf', region_name='us-west-2', endpoint_url='http://localhost:5000')
try:
client.register_domain(
name='test-swf-mock-domain',
description="Test SWF domain",
workflowExecutionRetentionPeriodInDays="10"
)
except ClientError as e:
print "Domain already exists: ", e.response.get("Error", {}).get("Code")
response = client.list_domains(
registrationStatus='REGISTERED',
maximumPageSize=123,
reverseOrder=True|False
)
print 'Ready'
The logic ke ena:
- Ha re qala, re kenya script ho eona /opt/init/bootstrap.py.
- Haeba faele e kentsoe, e tla etsoa.
- Haeba ho se na faele, seva sa mollo se tla qala feela.
Mme, o ka soma sesebelisoa kaofela ka ho qala setshelo se le seng:
docker run --name swf -d
-e MOTO_SERVICE=swf
-e MOTO_HOST=0.0.0.0
-e MOTO_PORT=5000
-p 5001:5000
-v /tmp/bootstrap_swf.py:/opt/init/bootstrap.py
-i awesome-repo.com/moto-server:latest
Ha re e leke ka lipuisano:
E sebetsa!
Kahoo re ka etsa docker-compose.yml, e tla boloka liphetoho tsa tlhahlobo ea nako:
docker-compose.yml
version: '3'
services:
s3:
image: picadoh/motocker
environment:
- MOTO_SERVICE=s3
- MOTO_HOST=10.0.1.2
ports:
- "5002:5000"
networks:
motonet:
ipv4_address: 10.0.1.2
volumes:
- /tmp/bootstrap_s3.py:/opt/init/bootstrap.py
swf:
image: picadoh/motocker
environment:
- MOTO_SERVICE=swf
- MOTO_HOST=10.0.1.3
ports:
- "5001:5000"
networks:
motonet:
ipv4_address: 10.0.1.3
volumes:
- /tmp/bootstrap_swf.py:/opt/init/bootstrap.py
ec2:
image: picadoh/motocker
environment:
- MOTO_SERVICE=ec2
- MOTO_HOST=10.0.1.4
ports:
- "5003:5000"
networks:
motonet:
ipv4_address: 10.0.1.4
volumes:
- /tmp/bootstrap_ec2.py:/opt/init/bootstrap.py
networks:
motonet:
driver: bridge
ipam:
config:
- subnet: 10.0.0.0/16
Ha e le hantle, mokhoa ona o ka sebelisoa eseng feela ho laptop ea moqapi. Liteko tsa pele tse nang le litšeho ka mor'a kopano li tla thusa ho tlosa mathata a ka bang teng ha u sebetsa libakeng tsa dev *.
Lipeeletso:
Motocker repo -
Moto repo -
Boto3 Docs -
Source: www.habr.com