标签归档:developer-tools
Gitsome-增强型Git/GitHub命令行界面(CLI)。GitHub和GitHub企业的官方集成:https://github.com/works-with/category/desktop-tools
一个Official Integration对于GitHub和GitHub Enterprise
gitsome
?
为什么Git命令行
虽然标准的Git命令行是管理基于Git的repo的一个很好的工具,但是它可以很难记住这个用法地址为:
- 150多个瓷器和管道命令
- 无数特定于命令的选项
- 标签和分支等资源
Git命令行不与GitHub集成,强制您在命令行和浏览器之间切换
gitsome
-具有自动完成功能的增压Git/GitHub CLI
gitsome
旨在通过专注于以下方面来增强您的标准git/shell界面:
- 提高易用性
- 提高工作效率
深度GitHub集成
并不是所有的GitHub工作流都能在终端中很好地工作;gitsome
试图将目标对准那些这样做的人
gitsome
包括29个与一起使用的GitHub集成命令ALL外壳:
$ gh <command> [param] [options]
跑gh
命令以及Git-Extras和hub解锁更多GitHub集成的命令!
带有交互式帮助的Git和GitHub自动完成程序
您可以运行可选壳牌:
$ gitsome
要启用自动完成和交互式帮助对于以下内容:
- Git命令
- Git选项
- Git树枝、标签等
- Git-Extras commands
- GitHub integration commands
通用自动补全程序
gitsome
自动完成以下内容:
- Shell命令
- 文件和目录
- 环境变量
- 手册页
- python
要启用其他自动完成,请查看Enabling Bash Completions部分
鱼式自动建议
gitsome
支持鱼式自动建议。使用right arrow
完成建议的关键
Python REPL
gitsome
由以下人员提供动力xonsh
,它支持Python REPL
在shell命令旁边运行Python命令:
附加内容xonsh
功能可在xonsh tutorial
命令历史记录
gitsome
跟踪您输入的命令并将其存储在~/.xonsh_history.json
使用向上和向下箭头键循环查看命令历史记录
可自定义的突出显示
可以控制用于突出显示的ansi颜色,方法是更新~/.gitsomeconfig
文件
颜色选项包括:
'black', 'red', 'green', 'yellow',
'blue', 'magenta', 'cyan', 'white'
对于无颜色,请将值设置为None
white
在某些终端上可能显示为浅灰色
可用的平台
gitsome
适用于Mac、Linux、Unix、Windows,以及Docker
待办事项
并不是所有的GitHub工作流都能在终端中很好地工作;
gitsome
试图将目标对准那些这样做的人
- 添加其他GitHub API集成
gitsome
才刚刚开始。请随意……contribute!
索引
GitHub集成命令
- GitHub Integration Commands Syntax
- GitHub Integration Commands Listing
- GitHub Integration Commands Quick Reference
- GitHub Integration Commands Reference in COMMANDS.md
gh configure
gh create-comment
gh create-issue
gh create-repo
gh emails
gh emojis
gh feed
gh followers
gh following
gh gitignore-template
gh gitignore-templates
gh issue
gh issues
gh license
gh licenses
gh me
gh notifications
gh octo
gh pull-request
gh pull-requests
gh rate-limit
gh repo
gh repos
gh search-issues
gh search-repos
gh starred
gh trending
gh user
gh view
- Option: View in a Pager
- Option: View in a Browser
安装和测试
- Installation
- Developer Installation
杂项
GitHub集成命令语法
用法:
$ gh <command> [param] [options]
GitHub集成命令列表
configure Configure gitsome.
create-comment Create a comment on the given issue.
create-issue Create an issue.
create-repo Create a repo.
emails List all the user's registered emails.
emojis List all GitHub supported emojis.
feed List all activity for the given user or repo.
followers List all followers and the total follower count.
following List all followed users and the total followed count.
gitignore-template Output the gitignore template for the given language.
gitignore-templates Output all supported gitignore templates.
issue Output detailed information about the given issue.
issues List all issues matching the filter.
license Output the license template for the given license.
licenses Output all supported license templates.
me List information about the logged in user.
notifications List all notifications.
octo Output an Easter egg or the given message from Octocat.
pull-request Output detailed information about the given pull request.
pull-requests List all pull requests.
rate-limit Output the rate limit. Not available for Enterprise.
repo Output detailed information about the given filter.
repos List all repos matching the given filter.
search-issues Search for all issues matching the given query.
search-repos Search for all repos matching the given query.
starred Output starred repos.
trending List trending repos for the given language.
user List information about the given user.
view View the given index in the terminal or a browser.
GitHub集成命令参考:COMMANDS.md
请参阅GitHub Integration Commands Reference in COMMANDS.md对于详细讨论所有GitHub集成命令、参数、选项和示例
请查看下一节,了解快速参考
GitHub集成命令快速参考
gitsome
配置要与GitHub正确集成,您必须首先配置gitsome
:
$ gh configure
对于GitHub Enterprise用户,使用-e/--enterprise
标志:
$ gh configure -e
列表源
列出您的新闻源
$ gh feed
列出用户的活动摘要
查看您的活动订阅源或其他用户的活动订阅源,也可以选择使用寻呼机-p/--pager
这个pager option可用于许多命令
$ gh feed donnemartin -p
列出回购的活动提要
$ gh feed donnemartin/gitsome -p
列出通知
$ gh notifications
列出拉式请求
查看您的回购的所有拉式请求:
$ gh pull-requests
过滤问题
查看您提到的所有未决问题:
$ gh issues --issue_state open --issue_filter mentioned
查看所有问题,只筛选分配给您的问题,而不考虑状态(打开、关闭):
$ gh issues --issue_state all --issue_filter assigned
有关过滤和州限定词的更多信息,请访问gh issues
参考位置COMMANDS.md
过滤星级报告
$ gh starred "repo filter"
搜索问题和报告
搜索问题
+1最多的搜索问题:
$ gh search-issues "is:open is:issue sort:reactions-+1-desc" -p
评论最多的搜索问题:
$ gh search-issues "is:open is:issue sort:comments-desc" -p
使用“需要帮助”标签搜索问题:
$ gh search-issues "is:open is:issue label:\"help wanted\"" -p
已标记您的用户名的搜索问题@donnemartin:
$ gh search-issues "is:issue donnemartin is:open" -p
搜索您所有未解决的私人问题:
$ gh search-issues "is:open is:issue is:private" -p
有关查询限定符的更多信息,请访问searching issues reference
搜索报告
搜索2015年或之后创建的所有Python repos,>=1000星:
$ gh search-repos "created:>=2015-01-01 stars:>=1000 language:python" --sort stars -p
有关查询限定符的更多信息,请访问searching repos reference
列出趋势报告和开发人员
查看趋势回购:
$ gh trending [language] [-w/--weekly] [-m/--monthly] [-d/--devs] [-b/--browser]
查看趋势DEV(目前仅浏览器支持DEV):
$ gh trending [language] --devs --browser
查看内容
view
命令
这个查看前面列出的通知、拉取请求、问题、回复、用户等,HTML格式适合您的终端,也可以选择在您的浏览器中查看:
$ gh view [#] [-b/--browser]
issue
命令
这个查看问题:
$ gh issue donnemartin/saws/1
pull-request
命令
这个查看拉取请求:
$ gh pull-request donnemartin/awesome-aws/2
.gitignore
设置列出所有可用的.gitignore
模板:
$ gh gitignore-templates
设置您的.gitignore
:
$ gh gitignore-template Python > .gitignore
LICENSE
设置列出所有可用的LICENSE
模板:
$ gh licenses
设置您的或LICENSE
:
$ gh license MIT > LICENSE
召唤十月猫
在十月猫那天打电话说出给定的信息或复活节彩蛋:
$ gh octo [say]
查看配置文件
查看用户的配置文件
$ gh user octocat
查看您的个人资料
使用查看您的个人资料gh user [YOUR_USER_ID]
命令或使用以下快捷方式:
$ gh me
创建评论、问题和报告
创建评论:
$ gh create-comment donnemartin/gitsome/1 -t "hello world"
创建问题:
$ gh create-issue donnemartin/gitsome -t "title" -b "body"
创建回购:
$ gh create-repo gitsome
选项:在寻呼机中查看
许多gh
命令支持-p/--pager
在寻呼机中显示结果的选项(如果可用)
用法:
$ gh <command> [param] [options] -p
$ gh <command> [param] [options] --pager
选项:在浏览器中查看
许多gh
命令支持-b/--browser
在默认浏览器(而不是终端)中显示结果的选项
用法:
$ gh <command> [param] [options] -b
$ gh <command> [param] [options] --browser
请参阅COMMANDS.md有关所有GitHub集成命令、参数、选项和示例的详细列表
记住这些命令有困难吗?看看手边的autocompleter with interactive help来指导您完成每个命令
注意,您可以将gitsome
与其他实用程序(如Git-Extras
安装
PIP安装
gitsome
托管在PyPI将安装以下命令gitsome
:
$ pip3 install gitsome
您还可以安装最新的gitsome
来自GitHub源,可能包含尚未推送到PyPI的更改:
$ pip3 install git+https://github.com/donnemartin/gitsome.git
如果您没有安装在virtualenv
,您可能需要运行sudo
:
$ sudo pip3 install gitsome
pip3
根据您的设置,您可能还希望运行pip3
使用-H flag
:
$ sudo -H pip3 install gitsome
对于大多数Linux用户来说,pip3
可以使用python3-pip
套餐
例如,Ubuntu用户可以运行:
$ sudo apt-get install python3-pip
看这个ticket有关更多详细信息,请参阅
虚拟环境安装
您可以将Python包安装在virtualenv
要避免依赖项或权限的潜在问题,请执行以下操作
如果您是Windows用户,或者如果您想了解更多有关virtualenv
,看看这个guide
安装virtualenv
和virtualenvwrapper
:
$ pip3 install virtualenv
$ pip3 install virtualenvwrapper
$ export WORKON_HOME=~/.virtualenvs
$ source /usr/local/bin/virtualenvwrapper.sh
创建gitsome
virtualenv
并安装gitsome
:
$ mkvirtualenv gitsome
$ pip3 install gitsome
如果pip
安装不起作用,您可能默认运行的是Python2。检查您正在运行的Python版本:
$ python --version
如果上面的调用结果是Python 2,请找到Python 3的路径:
$ which python3 # Python 3 path for mkvirtualenv's --python option
如果需要,安装Python 3。调用时设置Python版本mkvirtualenv
:
$ mkvirtualenv --python [Python 3 path from above] gitsome
$ pip3 install gitsome
如果要激活gitsome
virtualenv
稍后再次运行:
$ workon gitsome
要停用gitsome
virtualenv
,运行:
$ deactivate
作为Docker容器运行
您可以在Docker容器中运行gitome,以避免安装Python和pip3
当地的。要安装Docker,请查看official Docker documentation
一旦安装了docker,您就可以运行gitome:
$ docker run -ti --rm mariolet/gitsome
您可以使用Docker卷让gitome访问您的工作目录、本地的.gitSomeconfig和.gitconfig:
$ docker run -ti --rm -v $(pwd):/src/ \
-v ${HOME}/.gitsomeconfig:/root/.gitsomeconfig \
-v ${HOME}/.gitconfig:/root/.gitconfig \
mariolet/gitsome
如果您经常运行此命令,则可能需要定义别名:
$ alias gitsome="docker run -ti --rm -v $(pwd):/src/ \
-v ${HOME}/.gitsomeconfig:/root/.gitsomeconfig \
-v ${HOME}/.gitconfig:/root/.gitconfig \
mariolet/gitsome"
要从源构建Docker映像,请执行以下操作:
$ git clone https://github.com/donnemartin/gitsome.git
$ cd gitsome
$ docker build -t gitsome .
gitsome
壳
启动安装后,运行可选的gitsome
带有交互式帮助的自动完成程序:
$ gitsome
运行可选的gitsome
Shell将为您提供自动完成、交互式帮助、鱼式建议、Python REPL等
gh
命令
正在运行运行GitHub集成命令:
$ gh <command> [param] [options]
注意:运行gitsome
不需要执行外壳程序gh
命令。之后installinggitsome
你可以跑gh
来自任何shell的命令
gh configure
命令
运行要与GitHub正确集成,gitsome
必须正确配置:
$ gh configure
针对GitHub企业用户
使用-e/--enterprise
标志:
$ gh configure -e
要查看更多详细信息,请访问gh configure部分
启用Bash完成
默认情况下,gitsome
查看以下内容locations to enable bash completions
要添加其他bash完成,请更新~/.xonshrc
包含bash完成位置的文件
如果~/.xonshrc
不存在,请创建它:
$ touch ~/.xonshrc
例如,如果在/usr/local/etc/my_bash_completion.d/completion.bash
,将以下行添加到~/.xonshrc
:
$BASH_COMPLETIONS.append('/usr/local/etc/my_bash_completion.d/completion.bash')
您将需要重新启动gitsome
要使更改生效,请执行以下操作
gh
在外部完成制表符gitsome
正在启用你可以跑gh
外部的命令gitsome
外壳完成器。要启用gh
此工作流的制表符完成,请将gh_complete.sh
本地文件
让bash知道可以完成gh
当前会话中的命令:
$ source /path/to/gh_complete.sh
要为所有终端会话启用制表符完成,请将以下内容添加到您的bashrc
文件:
source /path/to/gh_complete.sh
重新加载您的bashrc
:
$ source ~/.bashrc
提示:.
是的缩写source
,因此您可以改为运行以下命令:
$ . ~/.bashrc
对于Zsh用户
zsh
包括与bash完成兼容的模块
下载gh_complete.sh
文件,并将以下内容附加到您的.zshrc
:
autoload bashcompinit
bashcompinit
source /path/to/gh_complete.sh
重新加载您的zshrc
:
$ source ~/.zshrc
PIL
或Pillow
可选:安装将化身显示为gh me
和gh user
命令需要安装可选的PIL
或Pillow
依赖性
Windows*和Mac:
$ pip3 install Pillow
*请参阅Windows Support有关化身限制的部分
Ubuntu用户,看看这些instructions on askubuntu
支持的Python版本
- Python 3.4
- Python 3.5
- Python 3.6
- Python 3.7
gitsome
由以下人员提供动力xonsh
,它当前不支持Python2.x,如本文中所讨论的ticket
支持的平台
- Mac OS X
- 在OS X 10.10上测试
- Linux、Unix
- 在Ubuntu 14.04 LTS上测试
- 窗口
- 在Windows 10上测试
Windows支持
gitsome
已在Windows 10上进行了测试,cmd
和cmder
虽然您可以使用标准的Windows命令提示符,但使用这两种命令提示符都可能会有更好的体验cmder或conemu
纯文本化身
命令gh user
和gh me
将永远拥有-t/--text_avatar
标志已启用,因为img2txt
不支持Windows上的ANSI头像
配置文件
在Windows上,.gitsomeconfig
文件可在以下位置找到%userprofile%
例如:
C:\Users\dmartin\.gitsomeconfig
开发人员安装
如果您有兴趣为gitsome
,请运行以下命令:
$ git clone https://github.com/donnemartin/gitsome.git
$ cd gitsome
$ pip3 install -e .
$ pip3 install -r requirements-dev.txt
$ gitsome
$ gh <command> [param] [options]
pip3
如果您在安装时收到一个错误,提示您需要Python 3.4+,这可能是因为您的pip
命令是为旧版本的Python配置的。要解决此问题,建议安装pip3
:
$ sudo apt-get install python3-pip
看这个ticket有关更多详细信息,请参阅
持续集成
有关持续集成的详细信息,请访问Travis CI
单元测试和代码覆盖率
在活动的Python环境中运行单元测试:
$ python tests/run_tests.py
使用运行单元测试tox在多个Python环境中:
$ tox
文档
源代码文档将很快在Readthedocs.org请查看source docstrings
运行以下命令构建文档:
$ scripts/update_docs.sh
贡献
欢迎投稿!
回顾Contributing Guidelines有关如何执行以下操作的详细信息,请执行以下操作:
- 提交问题
- 提交拉式请求
学分
- click通过mitsuhiko
- github_trends_rss通过ryotarai
- github3.py通过sigmavirus24
- html2text通过aaronsw
- img2txt通过hit9
- python-prompt-toolkit通过jonathanslenders
- requests通过kennethreitz
- xonsh通过scopatz
联系信息
请随时与我联系,讨论任何问题、问题或评论
我的联系信息可以在我的GitHub page
许可证
我在开放源码许可下向您提供此存储库中的代码和资源。因为这是我的个人存储库,您获得的我的代码和资源的许可证来自我,而不是我的雇主(Facebook)
Copyright 2016 Donne Martin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Pyroscope-🔥连续性能分析平台🔥调试性能问题可归结为一行代码
Pyroscope是一个开源的连续性能剖析平台。它将帮助您:
- 查找代码中的性能问题
- 解决CPU利用率高的问题
- 了解应用程序的调用树
- 跟踪随时间变化的情况
Pyroscope Live Demo🔥
🔥功能
- 可以存储来自多个应用程序的多年性能分析数据
- 您可以一次查看多年数据,也可以放大特定事件
- 低CPU开销
- 高效压缩、低磁盘空间需求
- 时髦的用户界面
- 支持Go、Ruby和Python
分3步在本地试用Pyroscope:
# install pyroscope
brew install pyroscope-io/brew/pyroscope
# start pyroscope server:
pyroscope server
# in a separate tab, start profiling your app:
pyroscope exec python manage.py runserver # If using Python
pyroscope exec rails server # If using Ruby
# If using Pyroscope cloud add flags for server address and auth token
# pyroscope exec -server-address "https://your_company.pyroscope.cloud" -auth-token "ps-key-1234567890" python manage.py runserver
文档
有关如何将Pyroscope与其他编程语言配合使用、在Linux上安装或在生产环境中使用的更多信息,请查看我们的文档:
下载次数
您可以从我们的网站下载适用于MacOS、Linux和Docker的最新版本的PyroscopeDownloads page
支持的集成
- 红宝石(通过
rbspy
) - Python(通过
py-spy
) - 前往(途经
pprof
) - Linux eBPF(VIA
profile.py
从…bcc-tools
) - PHP(通过
phpspy
) - .NET(通过
dotnet trace
) - Java(即将推出)
请让我们知道您希望在our issues或在our slack
学分
高温镜之所以成为可能,要归功于许多人的出色工作,包括但不限于:
- 布兰登·格雷格(Brendan Gregg)-火焰图的发明者
- Julia Evans-Ruby的rbspy采样剖析器的创建者
- 弗拉基米尔·阿加方金(Vladimir Agafonkin)-火焰手的创建者-快速火焰图形渲染器
- Ben Frederickson-Python的py-spy采样分析器的创建者
- Adam Saponara-PHP采样剖析器的创建者
- Alexei Starovoitov、Brendan Gregg和其他许多使Linux内核中基于BPF的分析成为可能的人
贡献
要开始投稿,请查看我们的Contributing Guide
感谢Pyroscope的贡献者!
Streamlit-Streamlight-使用Python构建数据应用程序的最快方式
欢迎来到Streamlight👋
构建和共享数据应用程序的最快方式
Streamlight可以让您在几分钟内将数据脚本转换为可共享的Web应用程序,而不是几周。这都是Python,开源的,免费的!一旦您创建了应用程序,您就可以使用我们的free sharing platform要部署、管理和与全世界共享您的应用程序,请执行以下操作
安装
pip install streamlit
streamlit hello
Streamlight还可以安装在虚拟环境中Windows,Mac,以及Linux
举个小例子
Streamlight使构建交互式应用程序变得极其简单:
import streamlit as st
x = st.slider('Select a value')
st.write(x, 'squared is', x * x)
一个更大的例子
Streamlitt简单而集中的API让您可以构建极其丰富和强大的工具。This demo project允许您浏览整个Udacity self-driving-car dataset类并实时运行推理。YOLO object detection net
完整的演示用不到300行Python代码实现。事实上,这款应用程序包含only 23 Streamlit calls它展示了Streamlight的所有主要构建块。您现在可以在以下地址尝试share.streamlit.io/streamlit/demo-self-driving
Streamlight GitHub徽章
Streamlight的GitHub徽章可帮助其他人找到并使用您的Streamlight应用程序
部署应用程序后,您可以将此徽章直接嵌入到GitHub readme.md中,如下所示:
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/yourGitHubName/yourRepo/yourApp/)
更多信息
- 我们的launch post解释我们创建Streamlight的原因
- 我们的sharing platform announcement
- 我们令人惊叹的communityStreamlight用户共享应用程序、提出问题和互相帮助的地方
- 流光照明documentation和blog有关Streamlight的最新信息
- 更多demo projects为了激励你
- 如果您愿意贡献自己的力量,请参见instructions here
为团队提供流光照明
Streamlit for Teams是我们的企业解决方案,用于部署、管理、共享和协作您的Streamlight应用程序。Streamlight for Teams提供安全的单击部署、身份验证、Web编辑、版本控制等功能。它目前处于封闭测试阶段,您可以join the wait-list here
许可证
Streamlight是完全免费和开源的,并在Apache 2.0许可证
Localstack 一个功能齐全的本地AWS云堆栈
概述
LocalStack在本地计算机上启动以下核心云API, 离线开发和测试您的云和无服务器应用程序!
注:从版本开始0.11.0
,所有API都通过单个边缘服务,可在以下位置访问http://localhost:4566默认情况下(可通过以下方式进行自定义EDGE_PORT
,进一步见下文)
- ACM
- API网关
- 云表单
- CloudWatch
- CloudWatch日志
- DynamoDB
- DynamoDB流
- EC2
- ElasticSearch服务
- EventBridge(CloudWatch事件)
- 消防水龙带
- IAM
- Kinesis
- KMS
- 兰姆达
- 红移
- 路由53
- S3
- 秘书经理
- SES
- SNS
- SQS
- SSM
- 单步执行函数
- STS
除上述外,Pro version of LocalStack支持其他API和高级功能,包括:
- 放大
- API网关V2(WebSockets支持)
- 应用程序自动缩放
- AppSync
- 雅典娜
- 备份
- 批次
- 云前端
- 云迹(CloudTrail)
- 科尼托
- 成本资源管理器
- ECS/ECR/EKS
- ElastiCache
- 弹性豆茎
- ELB/ELBv2
- 电子病历
- 冰川/S3选择
- IAM安全策略实施
- 物联网
- Kinesis数据分析
- Lambda层和容器图像
- 用于Kafka的托管流(MSK)
- 媒体商店
- 海王星图形DB
- QLDB
- RDS/Aurora无服务器
- 时间流
- 转接
- X射线
- 对大多数服务的高级持久性支持
- 用于管理资源的交互式UI
- 测试报告仪表板
- 还有更多,更多的即将到来!(请查看我们的功能路线图这里:https://roadmap.localstack.cloud)
要求
python
(最高支持Python 3.6至3.8)pip
(Python包管理器)Docker
JDK
(如果KINESIS_PROVIDER
是kinesis-mock
并且该系统不是AMD64系统。支持8+个)
正在安装
安装LocalStack的最简单方法是通过pip
:
pip install localstack
注意事项如请务必照办。不使用sudo
或者root
User-LocalStack应该完全在本地非root用户下安装和启动。如果您在MacOS X Sierra中的权限有问题,请使用安装pip install --user localstack
正在运行
默认情况下,LocalStack使用以下命令在Docker容器内启动:
localstack start
(请注意,在MacOS上,您可能需要运行TMPDIR=/private$TMPDIR localstack start --docker
如果$TMPDIR
包含Docker无法挂载的符号链接。)
注意事项:2020-07-11起,默认镜像localstack/localstack
in Docker Hub指的是“轻量级版本”,它删除了一些大的依赖文件,比如Elasticsearch(如果需要,还可以懒惰地下载它们)。(请注意,localstack/localstack-light
将来可能会删除图像别名)。如果您需要完整的依赖项集,localstack/localstack-full
可以改为使用图像。请同时参阅USE_LIGHT_IMAGE
下面的配置
注意事项:默认情况下,LocalStack使用标记的图像latest
它缓存在您的计算机上,并且将不自动从Docker Hub拉取最新镜像(即需要手动拉取镜像)
(注意事项:虽然强烈建议使用Docker,但也可以使用--host
启动标志。请注意,这将需要additional dependencies,并且在某些操作系统(包括Windows)上不受支持。)
docker
使用您也可以直接使用docker,并使用以下命令开始使用localstack
docker run --rm -it -p 4566:4566 -p 4571:4571 localstack/localstack
若要在没有任何外部卷的情况下运行一次性容器,请执行以下操作。要启动服务子集,请使用-e "SERVICES=dynamodb,s3"
docker-compose
使用您也可以使用docker-compose.yml
文件,然后使用此命令(当前需要docker-compose
版本1.9.0+):
docker-compose up
(请注意,在MacOS上,您可能需要运行TMPDIR=/private$TMPDIR docker-compose up
如果$TMPDIR
包含Docker无法挂载的符号链接。)
为便于互操作性,配置变量可以作为前缀LOCALSTACK_
在码头。例如,设置LOCALSTACK_SERVICES=s3
相当于SERVICES=s3
使用头盔
您可以使用Helm通过运行以下命令在Kubernetes群集中安装LocalStack(Helm图表在中维护this repo):
helm repo add localstack-repo https://helm.localstack.cloud
helm upgrade --install localstack localstack-repo/localstack
配置
您可以将以下环境变量传递给LocalStack:
EDGE_PORT
:边缘服务的端口号,所有API调用的主要入口点(默认值:4566
)SERVICES
:要启动的服务名称(API)的逗号分隔列表。服务名称基本上对应于service names of the AWS CLI(kinesis
,lambda
,sqs
等),尽管LocalStack仅支持其中的一部分。示例值:kinesis,lambda,sqs
启动Kinesis、Lambda和SQS。此外,可以指定以下速记值来运行预定义的服务集合:serverless
:运行通常用于无服务器应用程序的服务(iam
,lambda
,dynamodb
,apigateway
,s3
,sns
)
DEFAULT_REGION
:与API通话时使用的AWS区域(默认值:us-east-1
)EDGE_BIND_HOST
:边缘服务绑定到的地址。(默认值:127.0.0.1
,在码头集装箱中0.0.0.0
)HOSTNAME
:要在内部公开服务的主机的名称(默认值:localhost
)。使用此选项来自定义框架内部通信,例如,如果使用docker-compose在不同容器中启动服务HOSTNAME_EXTERNAL
:要在外部公开服务的主机的名称(默认值:localhost
)。例如,当将队列URL从SQS服务返回到客户端时,使用此主机HOSTNAME_FROM_LAMBDA
:端点主机,在该主机下可以从Lambda容器访问API(可选)。这在码头组成堆栈中使用本地容器主机名是有用的(例如,HOSTNAME_FROM_LAMBDA=localstack
)如果主容器的IP地址和容器名称都不可用(例如,在CI中)。常与…连用LAMBDA_DOCKER_NETWORK
DEBUG
:用于提高日志级别并打印更多详细日志的标志(用于故障排除)<SERVICE>_PORT_EXTERNAL
:向外部公开特定服务的端口号(默认为上面的服务端口)。SQS_PORT_EXTERNAL
例如,将队列URL从SQS服务返回到客户端时使用IMAGE_NAME
:要使用的LocalStack Docker映像的特定名称和标签,例如,localstack/localstack:0.11.0
(默认值:localstack/localstack
)USE_LIGHT_IMAGE
:是否使用轻量级Docker镜像(默认为:1
)。被覆盖IMAGE_NAME
KINESIS_PROVIDER
:确定正在使用的模拟。有效值为kinesalite
和kinesis-mock
(默认)KINESIS_ERROR_PROBABILITY
:0.0(默认值)和1.0之间的十进制值随机注入ProvisionedThroughputExceededException
Kinesis API响应中的错误KINESIS_SHARD_LIMIT
:整数值(默认值:100
)或Infinity
(以禁用),导致Kinesis API开始引发异常以模仿default shard limitKINESIS_LATENCY
:毫秒整数值(默认值:500
)或0
(禁用),导致Kinesis API延迟返回响应,以模拟实时AWS调用的延迟。以下API调用受此影响:- CreateStream
- 删除流
- RegisterStreamConsumer
- StartStreamEncryption
- 停止流加密
- DeregisterStreamConsumer
- 合并碎片
- 拆分碎片
- 更新硬计数
KINESIS_INITIALIZE_STREAMS
:以逗号分隔的流名称字符串及其对应的要在启动期间初始化的分片计数。例如:“my-first-stream:1,my-ther-stream:2,my-last-stream:1”。仅适用于kinesis-mock
Kinesis_ProviderDYNAMODB_ERROR_PROBABILITY
:0.0(默认值)和1.0之间的十进制值随机注入ProvisionedThroughputExceededException
DynamoDB API响应中的错误DYNAMODB_HEAP_SIZE
:设置DynamoDB值的Java EE最大内存大小为(整数)m表示MB,(整数)G表示GB默认值(256M),全表扫描需要更多内存STEPFUNCTIONS_LAMBDA_ENDPOINT
:在STEP函数中用作Lambda服务端点的URL。默认情况下,这是LocalStack Lambda端点。使用default
要选择原始AWS Lambda端点,请执行以下操作LAMBDA_EXECUTOR
:用于执行Lambda函数的方法。可能的值包括:local
:在本地计算机的临时目录中运行Lambda函数docker
:在单独的Docker容器中运行每个函数调用docker-reuse
:为每个函数创建一个Docker容器,并跨调用重用它
为
docker
和docker-reuse
,如果LocalStack本身在Docker内部启动,则docker
命令需要在容器内可用(通常需要在特权模式下运行容器)。默认值为docker
,回退到local
如果Docker不可用LAMBDA_REMOTE_DOCKER
确定是否将Lambda代码复制或装载到容器中。可能的值包括:true
(默认):您的Lambda函数定义将通过复制zip文件传递到容器(可能较慢)。它允许远程执行,其中主机和客户端不在同一台计算机上false
:您的Lambda函数定义将通过挂载卷(可能更快)传递给容器。这需要将Docker客户端和Docker主机安装在同一台计算机上。另外,HOST_TMP_FOLDER
必须正确设置,并且像这样的卷装载${HOST_TMP_FOLDER}:/tmp/localstack
如果您使用的是docker-compose,则需要进行配置
BUCKET_MARKER_LOCAL
:本地运行lambdas的可选存储桶名称LAMBDA_DOCKER_NETWORK
:可选Docker网络,用于运行lambda函数的容器LAMBDA_DOCKER_DNS
:运行lambda函数的容器的可选DNS服务器LAMBDA_DOCKER_FLAGS
:传递给Lambda Docker的其他标志run
/create
命令(例如,用于指定自定义卷装载)LAMBDA_CONTAINER_REGISTRY
使用备用docker注册表拉取lambda执行容器(默认:lambci/lambda
)LAMBDA_REMOVE_CONTAINERS
:lambdas执行完毕后是否移除容器(默认:true
)TMPDIR
:LocalStack容器内的临时文件夹(默认值:/tmp
)HOST_TMP_FOLDER
:装载为的主机上的临时文件夹$TMPDIR/localstack
放到LocalStack容器中。仅在使用时装载Lambda卷时需要LAMBDA_REMOTE_DOCKER=false
DATA_DIR
:保存持久数据的本地目录(目前仅支持以下服务:Kinesis、DynamoDB、Elasticsearch、S3、Secretsmanager、SSM、SQS、SNS)。将其设置为/tmp/localstack/data
要启用持久性(/tmp/localstack
挂载到Docker容器中),则保留为空以禁用持久化(默认)PERSISTENCE_SINGLE_FILE
:指定是否应合并持久性文件。(默认值:true
)PORT_WEB_UI
:Web用户界面/仪表板的端口(默认:8080
)。请注意,Web UI现在已弃用(需要使用激活START_WEB=1
),并要求使用localstack/localstack-full
Docker镜像<SERVICE>_BACKEND
:用于特定服务的自定义端点URL,其中<SERVICE>
是大写的服务名称(当前适用于:APIGATEWAY
,CLOUDFORMATION
,DYNAMODB
,ELASTICSEARCH
,KINESIS
,S3
,SNS
,SQS
)。这样就可以轻松地将第三方服务集成到LocalStack中。您可以查看一个elasticsearch example hereFORCE_NONINTERACTIVE
:使用Docker运行时,禁用--interactive
和--tty
旗帜。在无头运行时很有用DOCKER_FLAGS
:允许在Docker中运行LocalStack时将自定义标志(例如,卷装载)传递给“docker run”DOCKER_CMD
:用于运行Docker容器的shell命令,例如,设置为"sudo docker"
以sudo身份运行(默认值:docker
)SKIP_INFRA_DOWNLOADS
:是否跳过下载其他基础架构组件(例如,特定的Elasticsearch版本)START_WEB
:用于控制是否应在Docker中启动Web UI的标志(默认值:false
;已弃用)LAMBDA_FALLBACK_URL
:调用不存在的Lambda时使用的回退URL。记录DynamoDB(值)中的调用dynamodb://<table_name>
)或将调用作为POST请求(值http(s)://...
)LAMBDA_FORWARD_URL
:用于转发所有lambda调用的URL(用于通过外部服务运行lambdas)DISABLE_CORS_CHECKS
:是否禁用所有CSRF缓解(默认值:0)DISABLE_CUSTOM_CORS_S3
:是否通过S3禁用CORS覆盖(默认值:0)DISABLE_CUSTOM_CORS_APIGATEWAY
:禁用由apigateway覆盖CORS的内容(默认值:0)EXTRA_CORS_ALLOWED_ORIGINS
:允许与本地堆栈通信的来源的逗号分隔列表EXTRA_CORS_ALLOWED_HEADERS
:要添加到的以逗号分隔的标头名称列表Access-Control-Allow-Headers
CORS标头EXTRA_CORS_EXPOSE_HEADERS
:要添加到的以逗号分隔的标头名称列表Access-Control-Expose-Headers
CORS标头LAMBDA_JAVA_OPTS
:允许传递自定义JVM选项(例如,-Xmx512M
)到在Docker中执行的Java lambdas。使用_debug_port_
用于配置调试端口的占位符(例如,-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=_debug_port_
)MAIN_CONTAINER_NAME
:指定主坞容器名称(默认值:localstack_main
)INIT_SCRIPTS_PATH
:指定扩展名为.sh的初始化文件的路径,这些文件默认位于/docker-entrypoint-initaws.d
LS_LOG
:指定日志级别(‘trace’、‘debug’、‘info’、‘warn’、‘error’、‘warning’)当前重写DEBUG
配置。启用LS_LOG=trace
打印详细的请求/响应消息
以下环境配置可用于调试:
DEVELOP
:在启动本地堆栈服务之前启动调试服务器DEVELOP_PORT
:调试服务器的端口号WAIT_FOR_DEBUGGER
:强制LocalStack等待调试器启动服务
以下环境配置包括已弃用:
USE_SSL
:是否使用https://...
使用SSL加密的URL(默认值:false
)。从版本0.11.3起不建议使用-每个服务端点现在都支持在同一端口上多路传输HTTP/HTTPS流量
此外,还包括以下内容只读环境变量可用:
LOCALSTACK_HOSTNAME
:LocalStack服务可用的主机的名称。使用该主机名作为端点(例如,http://${LOCALSTACK_HOSTNAME}:4566
)以便从Lambda函数中访问服务(例如,将项从Lambda存储到DynamoDB或S3)
将上述环境变量传递给LocalStack以启动Kinesis、Lambda、DynamoDB和SQS的示例:
SERVICES=kinesis,lambda,sqs,dynamodb localstack start
使用命令行验证坞站合成配置
您可以使用localstack config validate
用于检查常见配置错误的命令
默认情况下,它会验证docker-compose.yml
,则可以使用--file
参数,例如:
localstack config validate --file=localstack-docker-compose.yml
在运行时动态更新配置
列出的每个服务APIabove在PATH下定义后门API/?_config_
中定义的配置变量,它允许动态更新config.py
您需要通过设置来启用此终结点ENABLE_CONFIG_UPDATES=1
例如,要动态设置KINESIS_ERROR_PROBABILITY=1
在运行时,使用以下命令:
curl -v -d '{"variable":"KINESIS_ERROR_PROBABILITY","value":1}' 'http://localhost:4566/?_config_'
服务运行状况检查
这项服务/health
检查边缘端口上的端点(http://localhost:4566/health
默认情况下)提供关于每个服务的状态的基本信息(例如,{"s3":"running","es":"starting"}
)。默认情况下,端点返回在启动期间确定的缓存值-状态值可以通过添加reload
查询参数:http://localhost:4566/health?reload
初始化新实例
首次启动容器时,它将执行扩展名为.sh的文件,这些文件位于/docker-entrypoint-initaws.d
或中定义的备用路径INIT_SCRIPTS_PATH
文件将按字母顺序执行。您可以使用以下命令在本地堆栈上轻松创建AWS资源awslocal
(或aws
)初始化脚本中的CLI工具
使用自定义SSL证书
要使用您自己的SSL证书而不是随机生成的证书,您可以放置一个文件server.test.pem
放入LocalStack临时目录($TMPDIR/localstack
,或/tmp/localstack
默认情况下)。该文件server.test.pem
必须包含密钥文件以及证书文件内容:
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
将自定义SSL证书与docker-compose配合使用
通常,使用docker-compose可以将此卷添加到docker-compose.yml到LocalStack服务中:
volumes:
- "${PWD}/ls_tmp:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
本地目录/ls_tmp
必须包含三个文件(server.test.pem、server.test.pem.crt、server.test.pem.key)
通过CLI或代码访问基础架构
你可以把你的aws
使用本地基础架构的CLI,例如:
aws --endpoint-url=http://localhost:4566 kinesis list-streams
{
"StreamNames": []
}
使用以下命令安装aws CLI
,如果尚未安装
pip install awscli
设置本地区域和凭据以运行LocalStack
AWS需要设置区域和凭证才能运行AWS命令。创建默认配置&凭据。以下密钥将要求提供访问密钥ID、秘密访问密钥、区域和输出格式
aws configure --profile default
# Config & credential file will be created under ~/.aws folder
注意事项:请使用test
作为访问密钥ID和秘密访问密钥,以使S3预签名URL工作。我们增加了前缀url签名验证算法来验证前缀url及其有效期。您可以使用将凭据配置到系统环境中export
命令在Linux/Mac系统中运行。您还可以在中添加凭据~/.aws/credentials
直接归档
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
新的:退房awslocal,一个直接针对LocalStack运行命令的精简CLI包装器(无需指定--endpoint-url
再也没有了)。通过以下方式安装pip install awscli-local
,然后按如下方式使用:
awslocal kinesis list-streams
{
"StreamNames": []
}
更新:使用环境变量$LOCALSTACK_HOSTNAME
来确定lambda函数中的目标主机。看见Configurations部分了解更多详细信息。
将官方AWS CLI版本2 Docker映像与Localstack Docker容器配合使用
默认情况下,运行的容器amazon/aws-cli与0.0.0.0:4566
在主机上,这意味着aws-cli无法通过您的shell访问本地堆栈
要确保两个坞站容器可以通信,请在坞站引擎上创建网络:
$ ▶ docker network create localstack
0c9cb3d37b0ea1bfeb6b77ade0ce5525e33c7929d69f49c3e5ed0af457bdf123
然后修改docker-compose.yml
指定要使用的网络:
networks:
default:
external:
name: "localstack"
使用此网络运行AWS Cli v2坞站容器(示例):
$ ▶ docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566 lambda list-functions
{
"Functions": []
}
如果您经常从坞站容器使用AWS CLI v2,请创建别名:
$ ▶ alias laws='docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566'
因此,您可以键入:
$ ▶ laws lambda list-functions
{
"Functions": []
}
客户端库
- 巨蟒:https://github.com/localstack/localstack-python-client
- 或者,您也可以使用
boto3
并使用endpoint_url
创建连接时的参数
- 或者,您也可以使用
- 净额:https://github.com/localstack-dotnet/localstack-dotnet-client
- 或者,您也可以使用
AWS SDK for .NET
和改变ClientConfig
创建服务客户端时的属性
- 或者,您也可以使用
- (很快会有更多。)
正在调用API网关
而AWS上的API网关端点使用自定义DNS名称来标识API ID(例如,https://nmafetnwf6.execute-api.us-east-1.amazonaws.com/prod/my/path
),LocalStack使用特殊的URL路径指示符.../_user_request_/...
指示睡觉API方法的执行
API网关执行的URL模式为http://localhost:4566/restapis/<apiId>/<stage>/_user_request_/<methodPath>
上面的示例URL将映射到以下内容localhost
URL:
$ curl http://localhost:4566/restapis/nmafetnwf6/prod/_user_request_/my/path
与pytest集成
如果您想在集成测试中使用LocalStack(例如pytest),只需启动测试设置方法中的基础设施,然后清除tearDown方法中的所有内容:
from localstack.services import infra
def setup():
infra.start_infra(asynchronous=True)
def teardown():
infra.stop_infra()
def my_app_test():
# here goes your test logic
请参阅示例测试文件tests/integration/test_integration.py
有关更多详细信息,请参阅
与无服务器集成
您可以使用serverless-localstack
易于运行的插件ServerlessLocalStack上的应用程序。有关更多信息,请查看此处的插件存储库:https://github.com/localstack/serverless-localstack
与Terraform集成
您可以使用Terraform在本地配置您的资源。请参阅Terraform AWS提供商文档here有关如何在上配置API端点的信息localhost
将本地代码与Lambda一起使用
要挂载本地文件夹,请确保LAMBDA_REMOTE_DOCKER
设置为false
然后将S3存储桶名称设置为__local__
或BUCKET_MARKER_LOCAL
如果已设置,并且S3键指向您的本地路径:
awslocal lambda create-function --function-name myLambda \
--code S3Bucket="__local__",S3Key="/my/local/lambda/folder" \
--handler index.myHandler \
--runtime nodejs8.10 \
--role whatever
注:在使用时LAMBDA_REMOTE_DOCKER=false
,请确保正确设置HOST_TMP_FOLDER
LocalStack容器的环境变量(请参见上面的配置部分)
与Java/JUnit集成
为了在Java中使用LocalStack,该项目附带了一个简单的JUnit运行器,请参见下面的示例
...
import cloud.localstack.LocalstackTestRunner;
import cloud.localstack.TestUtils;
import cloud.localstack.docker.annotation.LocalstackDockerProperties;
@RunWith(LocalstackTestRunner.class)
@LocalstackDockerProperties(services = { "s3", "sqs", "kinesis:77077" })
public class MyCloudAppTest {
@Test
public void testLocalS3API() {
AmazonS3 s3 = TestUtils.getClientS3()
List<Bucket> buckets = s3.listBuckets();
...
}
}
有关更多详细信息和配置参数的完整列表,请参阅LocalStack Java Utils存储库
故障排除
- 如果您将AWS Java库与Kinesis配合使用,请参阅CBOR protocol issues with the Java SDK guide如何禁用kinesalite不支持的CBOR协议
- 访问本地S3:为避免域名解析问题,需要开启路径样式访问在您的S3SDK客户端上。大多数AWS SDK都提供配置来实现这一点,例如,对于Java:
s3.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).build());
// There is also an option to do this if you're using any of the client builder classes:
AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();
builder.withPathStyleAccessEnabled(true);
...
- 正在挂载临时工。目录:请注意,在MacOS上,您可能必须运行
TMPDIR=/private$TMPDIR docker-compose up
如果$TMPDIR
包含Docker无法挂载的符号链接。(请在此处查看详细信息:https://bitbucket.org/atlassian/localstack/issues/40/getting-mounts-failed-on-docker-compose-up) - 如果您看到像这样的Lambda错误
Cannot find module ...
在使用时LAMBDA_REMOTE_DOCKER=false
,请确保正确设置HOST_TMP_FOLDER
环境变量,并将临时文件夹从主机挂载到LocalStack容器 - 如果您在以下位置遇到文件权限问题
pip install
在MacOS下(例如,Permission denied: '/Library/Python/2.7/site-packages/six.py'
),则您可能需要重新安装pip
Via Homebrew(请参见this discussion thread)。或者,尝试使用--user
标志:pip install --user localstack
- 如果您在OpenShift内部署,请注意:Pod必须以
root
,并且用户必须将权能添加到正在运行的Pod中,才能允许Elasticsearch作为非根用户运行localstack
用户 - 如果您在Mac OS中遇到lambdas性能较慢的问题,您可以(1)尝试mounting local code directly into the Lambda container,或(2)禁止在docker-compose中将临时目录挂载到LocalStack容器中。(另见https://github.com/localstack/localstack/issues/2515)
- 环境变量
no_proxy
由LocalStack重写。(内部请求将直接通过localhost,绕过任何代理配置) - 要对LocalStack启动问题进行故障排除,可以通过运行以下命令检查调试日志
DEBUG=1 localstack start
- 如果您遇到与Node/NodeJS相关的错误,您可以找到(此问题备注:https://github.com/localstack/localstack/issues/227#issuecomment-319938530)很有帮助
- 如果您正在使用AWS Java库并需要禁用SSL证书检查,请添加
-Dcom.amazonaws.sdk.disableCertChecking
添加到java调用
发展中的
在本地开发或启动的要求
要开发新功能,或在本地启动堆栈(在Docker之外),需要以下附加工具:
make
npm
(Node.js包管理器)java
/javac
(Java 8运行时环境和编译器)mvn
(Maven,Java的构建系统)moto
(用于测试)docker-compose
(用于使用docker-compose运行本地堆栈)mock
(用于单元测试)pytest
(用于单元测试)pytest-cov
(检查单元测试覆盖率)
开发环境
如果为了扩展/修改LocalStack而拉回回购,请运行以下命令以安装所有依赖项:
make install
这将在本地Python viralenv目录中安装所需的pip依赖项.venv
(您的全局python包将保持不变),以及中的一些节点模块。./localstack/node_modules/
根据您的系统,某些pip/npm模块可能需要安装其他本地库。
Makefile包含一个目标,用于方便地运行用于开发的本地基础设施:
make infra
使用Vagant启动LocalStack(CentOS 8)
这类似于make docker-mount-run
,但不是启动docker centos虚拟机,而是将源代码挂载到其中
前提条件
- 流浪汉
vagrant plugin install vagrant-vbguest
启动流浪汉
make vagrant-start
(准备好提供系统密码)
使用流浪汉
vagrant ssh
sudo -s
cd /localstack
SERVICES=dynamodb DEBUG=1 make docker-mount-run
停止流浪汉
make vagrant-stop
或vagrant halt
删除流浪VM
vagrant destroy
请查看developer guide其中包含一些关于如何开始开发(和调试)LocalStack功能的说明
测试
该项目包含一组可以通过make目标启动的单元和集成测试:
make test
要检查代码覆盖率,请执行以下操作
完成新功能/错误修复后,运行单元测试并检查覆盖范围
# To run the particular test file (sample)
pytest --cov=localstack tests/unit/test_common.py
# To check the coverage in the console
coverage report
# To check the coverage as html (output will be redirected to the html folder)
coverage html
Web仪表板(已弃用)
这些项目还附带一个简单的Web仪表板,可用于查看已部署的AWS组件以及它们之间的关系
localstack web
请注意,Web UI需要使用Docker映像的扩展版本(localstack/localstack-full
)
注:Web仪表板不再进行主动维护,可能会在即将发布的版本中删除
其他UI客户端
更改日志
请参阅CHANGELOG.md
要查看每个版本的完整更改列表,请执行以下操作
贡献
我们欢迎反馈、错误报告和拉请求!
对于拉取请求,请遵循以下指导原则:
- 添加对任何新功能和错误修复的测试。理想情况下,每个PR都应该增加测试覆盖率
- 遵循现有代码样式(例如,缩进)。Makefile中包含PEP8代码链接目标
- 在代码中添加合理数量的注释
- 在您的GitHub用户帐户上派生本地堆栈,在那里进行更改,然后根据主本地堆栈存储库创建PR
- 将不相关的更改分离到多个拉取请求中
- 每个PR 1个提交:请将多个提交压缩/重新设置为单个提交的基础(以保持历史记录的干净)
请注意,通过向此存储库贡献任何代码或文档(通过提出拉请求或其他方式),您明确同意Contributor License Agreement
贡献者
支持者
感谢我们所有的支持者!🙏[Become a backer]
赞助商
通过成为赞助商来支持这个项目。您的徽标将在此处显示,并带有指向您的网站的链接。[Become a sponsor]
随时间流逝的观星者
许可证
版权所有(C)2017-2020 LocalStack维护者和贡献者
版权所有(C)2016 Atlassian和其他
此版本的LocalStack是在Apache许可证2.0版(请参阅LICENSE.txt)下发布的。下载并使用本软件,即表示您同意End-User License Agreement (EULA)
我们基于多个第三方软件工具构建,包括:
第三方软件 | 许可证 |
---|---|
Python/pip模块: | |
空速 | BSD许可证 |
Amazon_kclpy | 亚马逊软件许可证 |
Boto3 | Apache License 2.0 |
覆盖范围 | Apache License 2.0 |
文档选项 | 麻省理工学院许可证 |
弹性搜索 | Apache License 2.0 |
烧瓶 | BSD许可证 |
烧瓶招摇过市 | 麻省理工学院许可证 |
jsonpath-RW | Apache License 2.0 |
摩托 | Apache License 2.0 |
请求 | Apache License 2.0 |
子进程32 | PSF许可证 |
Node.js/npm模块: | |
活塞利特(Kinesalite) | 麻省理工学院许可证 |
其他工具: | |
弹性搜索 | Apache License 2.0 |
本地-KMS | 麻省理工学院许可证 |
Kinesis-模拟 | 麻省理工学院许可证 |
公告
- 2021-04-24:我们要招人了!-如果您喜欢我们在LocalStack所做的工作,请查看我们的jobs board然后给我们发一封电子邮件,告诉我们你的简历/背景/投资组合。我们期待着您的回音!
- 2020/12/28:查看LocalStack Pro功能路线图这里:https://roadmap.localstack.cloud-请通过创建和提升功能请求来帮助我们确定积压工作的优先顺序。期待您的反馈!
- 2020-09-15:PR#2905中合并了一个重大(突破性)更改-从以下版本开始
v0.11.5
,所有服务现在仅通过边缘服务(端口4566)公开!请更新您的客户端配置以使用此新端点 - 2019-10-09:LocalStack Pro已推出!我们非常兴奋地宣布推出LocalStack Pro-具有附加API和高级功能的LocalStack企业版。请访问以下地址查看免费试用https://localstack.cloud
- 2018-01-10:需要帮助!请fill out this survey支持查尔默斯理工大学进行的一项关于无服务器和功能即服务(FAAS)服务使用情况的研究。调查只需要你5-10分钟的时间。非常感谢您的参与!!
- 这项研究的结果是可以找到的here
- 2017-08-27:我们需要你的支持!LocalStack正在快速发展,我们现在有数千名开发人员定期使用该平台。上个月,我们记录了惊人的100k测试运行,25k+DynamoDB表、20k+SQS队列、15k+Kinesis Streams、13k+S3存储桶和10k+Lambda函数在本地创建-成本为0美元(更多详细信息将很快公布)。bug和功能请求如潮水般涌入,我们现在需要来自你保持开放源码版本的积极维护。请给我退房Open Collective并成为一名backer或supporter今天是项目的第一天!谢谢大家的贡献。♥
- 2017/07/20:请注意:从版本开始
0.7.0
,将推送Docker映像并使其处于最新状态新名称localstack/localstack
(这意味着您可能需要更新您的配置项配置。)请参阅更新后的End-User License Agreement (EULA)用于新版本。旧的Docker映像(atlassianlabs/localstack
)仍然可用,但不会再维护