Gwaji wani bangare ne na tsarin ci gaba. Kuma wani lokacin masu haɓakawa suna buƙatar gudanar da gwaje-gwaje a cikin gida, kafin yin canje-canje.
Idan aikace-aikacen yana amfani Amazon Web Services, python dakin karatu babur cikakke ga wannan.
Ana iya duba cikakken jerin abubuwan da ke tattare da albarkatu
Akwai juzu'i akan Github Hugo Picado -
To, wannan yana da sauƙi don gyarawa.
Tun lokacin farawa kuna buƙatar saka nau'in sabis ɗin (kimanin m MOTO_SERVICE), dole ne mu bayyana ƙirƙirar albarkatun.
Bari mu canza shi kadan fara.sh:
Madadin haka
moto_server $MOTO_SERVICE -H $MOTO_HOST -p $MOTO_PORT
Saka:
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
Fayil na ƙarshe shine:
fara.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
Muna gina sabon hoto kuma muna tura shi cikin rajistarmu.
Na gaba, bari mu rubuta rubutun fara kayan aiki, misali yankin SWF, ta amfani da ɗakin karatu don aiki tare da 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'
Ma'anar ita ce:
- Lokacin farawa, muna hawa rubutun mu a ciki /opt/init/bootstrap.py.
- Idan an ɗora fayil ɗin, za a aiwatar da shi.
- Idan babu fayil, babur moto-uwar garken zai fara kawai.
Kuma, zaku iya yin ba'a ga dukan albarkatun ta hanyar ƙaddamar da akwati ɗaya:
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
Bari mu gwada shi ta hanyar mu'amala:
Yana aiki!
Don haka za mu iya yin docker-compose.yml, wanda zai adana canje-canjen gwaji na lokaci:
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
A zahiri, ana iya amfani da wannan hanyar ba kawai akan kwamfutar tafi-da-gidanka na mai haɓakawa ba. Gwaje-gwaje na farko tare da izgili bayan taro zai taimaka kawar da yuwuwar matsalolin yayin gudana akan wuraren dev *.
Tunani:
Motoci repo -
Moto repo -
Boto3 Docs -
source: www.habr.com