Kuyesa ndi gawo lofunikira lachitukuko. Ndipo nthawi zina opanga amayenera kuyesa kuyesa kwanuko, asanasinthe.
Ngati pulogalamuyo ikugwiritsidwa ntchito Mapulogalamu a Webusaiti a Amazon, python laibulale Moto wangwiro kwa izi.
Mndandanda wathunthu wazinthu zothandizira zitha kuwonedwa
Pali mpiru pa Github Hugo Picado -
Chabwino, ndizosavuta kukonza.
Kuyambira pamene mukuyamba muyenera kufotokoza mtundu wa utumiki (kutumiza kusintha MOTO_SERVICE), timangoyenera kufotokoza kulengedwa kwa gwero.
Tiyeni tisinthe pang'ono yambani.sh:
M'malo mwake
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT
Ikani:
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
Fayilo yomaliza ndi:
yambani.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
Timamanga chithunzi chatsopano ndikuchikankhira mu registry yathu.
Kenako, tiyeni tilembe zolemba zoyambira, mwachitsanzo Mtengo wa magawo SWF, pogwiritsa ntchito laibulale yogwira ntchito ndi 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'
Logic yake ndi iyi:
- Tikayamba, timayika script yathu mkati /opt/init/bootstrap.py.
- Ngati fayiloyo yayikidwa, idzachotsedwa.
- Ngati palibe fayilo, seva yamoto yopanda kanthu ingoyamba.
Ndipo, mutha kunyoza chida chonse poyambitsa chidebe chimodzi:
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
Tiyeni tiyese molumikizana:
Π Π°Π±ΠΎΡΠ°Π΅Ρ!
Chifukwa chake titha kupanga docker-compose.yml, yomwe ingapulumutse kusintha koyesa nthawi:
makina oyimba.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
Kwenikweni, njira iyi ikhoza kugwiritsidwa ntchito osati pa laputopu ya wopanga. Kuyesa koyambirira kokhala ndi zoseketsa pambuyo pa msonkhano kumathandizira kuchotsa zovuta zomwe zingachitike mukamagwira ntchito pa dev *.
Zolemba:
Motocker repo -
Moto repo -
Boto3 Docs -
Source: www.habr.com