[TOC]
AWS领先的设计理念和强大的技术生态
使你身陷其中,学习你要用它,开发你要
用它,上线还要用它。 一年下来项目还没有
正式商用,已经有十几万的研发费用。
今天向你推荐 localstack(与openstack啥关系?私有云+公有云),
让你使用AWS免费,至少在项目POC或开发测试阶段免费。
有了它, 你不用再焦急的等待老板审批公有云的
计算,存储,数据库资源开发申请。
是不是这个项目听起来很激动?
那如何使用localstack呢?
安装localstack
localstack是一个非常活跃的正在快速成长中的项目,
建议通过源代码安装
下载源代码
git clone [email protected]:localstack/localstack.git git fetch --all git checkout tags/v0.10.3 -b v0.10.3
启用需要使用的AWS服务
修改配置文件,启用你需要使用的AWS服务:ec2,s3,iot,kafka等。
注意服务的名字必须来自服务名字列表, 否则不识别
启用服务就是修改下边的配置文件
localstack\docker-compose.yml
SERVICES=${SERVICES-ec2,ecs,stepfunctions,iam,lambda,dynamodb,apigateway,s3,sns}
DATA_DIR=${DATA_DIR-/tmp/localstack/data }
volumes:
- "${TMPDIR:-d:/tmp/localstack}:/tmp/localstack"
make sure driver D is shared in docker desktop daemon
docker-compose up
localstack_1 | Starting mock S3 (http port 4572)...
localstack_1 | Starting mock SNS (http port 4575)...
localstack_1 | Starting mock IAM (http port 4593)...
localstack_1 | Starting mock API Gateway (http port 4567)...
localstack_1 | Starting mock DynamoDB (http port 4569)...
localstack_1 | Starting mock Lambda service (http port 4574)...
localstack_1 | Starting mock CloudWatch Logs (http port 4586)...
localstack_1 | Starting mock StepFunctions (http port 4585)...
系统消息显示需要的服务/端口已经启动。
到目前为至,localstack已经安装完毕。
记录并保存localstack的操作数据
if volumes in docker settings
Localstack is recording all API calls in JSON file.
When the container restarts, it will re-apply these calls -
this is how we are able to keep our data between restarts
docker-compose.yml
- DATA_DIR=/tmp/localstack/data
下边,我们来验证公有云服务是否可用。
安装AWS客户端
安装到虚拟环境
(venv) d:\code\venv>pip install awscli
可以安装到系统环境
配置AWS CLI
(venv) d:\code\venv>aws configure AWS Access Key ID [None]: any-id-is-ok AWS Secret Access Key [None]: fake-key Default region name [local]: local Default output format [None]:
验证服务编排
- 试用stepfunctions服务
上面显示stepfunctions服务在4585端口,下面的端口要和
配置保持一致
(venv) d:\code\venv>aws stepfunctions --endpoint-url http://localhost:4585 list-activities
创建一个HelloWorld工作流
(venv) d:\code\venv>aws stepfunctions --endpoint-url http://localhost:4585 create-state-machine --definition "{\"Comment\": \"A Hello World example of the Amazon States Language using a Pass state\",\"StartAt\": \"HelloWorld\",\"States\": {\"HelloWorld\": {\"Type\": \"Pass\",\"End\": true}}}" --name "HelloWorld" --role-arn "arn:aws:iam::012345678901:role/DummyRole"
显示创建的工作流
(venv) d:\code\venv>aws stepfunctions --endpoint-url http://localhost:4585 list-state-machines { "stateMachines": [ { "creationDate": 1568199315.809, "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "name": "HelloWorld" } ] }
工作流已经创建,你可以启动工作流,
添加Lambda,部署微服务,添加微服务到到工作流,
所有公有云的计算,存储,API调用,上行宽带费用
通过使用localstack一切免费。
赶快加入项目,贡献你的力量