标签归档:developer-tools

Http-prompt 构建在HTTPie之上的交互式命令行HTTP和API测试客户端,具有自动完成、语法突出显示等功能

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-Extrashub解锁更多GitHub集成的命令!

带有交互式帮助的Git和GitHub自动完成程序

您可以运行可选壳牌:

 $ gitsome

要启用自动完成交互式帮助对于以下内容:

通用自动补全程序

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'

对于无颜色,请将值设置为Nonewhite在某些终端上可能显示为浅灰色

可用的平台

gitsome适用于Mac、Linux、Unix、Windows,以及Docker

待办事项

并不是所有的GitHub工作流都能在终端中很好地工作;gitsome试图将目标对准那些这样做的人

  • 添加其他GitHub API集成

gitsome才刚刚开始。请随意……contribute!

索引

GitHub集成命令

安装和测试

杂项

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

安装virtualenvvirtualenvwrapper

$ pip3 install virtualenv
$ pip3 install virtualenvwrapper
$ export WORKON_HOME=~/.virtualenvs
$ source /usr/local/bin/virtualenvwrapper.sh

创建gitsomevirtualenv并安装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

如果要激活gitsomevirtualenv稍后再次运行:

$ workon gitsome

要停用gitsomevirtualenv,运行:

$ 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

运行可选的gitsomeShell将为您提供自动完成、交互式帮助、鱼式建议、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

可选:安装PILPillow

将化身显示为gh megh user命令需要安装可选的PILPillow依赖性

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上进行了测试,cmdcmder

虽然您可以使用标准的Windows命令提示符,但使用这两种命令提示符都可能会有更好的体验cmderconemu

纯文本化身

命令gh usergh 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有关如何执行以下操作的详细信息,请执行以下操作:

  • 提交问题
  • 提交拉式请求

学分

联系信息

请随时与我联系,讨论任何问题、问题或评论

我的联系信息可以在我的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(VIAprofile.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还可以安装在虚拟环境中WindowsMac,以及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/)

更多信息

为团队提供流光照明

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_PROVIDERkinesis-mock并且该系统不是AMD64系统。支持8+个)

正在安装

安装LocalStack的最简单方法是通过pip

pip install localstack

注意事项如请务必照办。使用sudo或者rootUser-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/localstackin 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(kinesislambdasqs等),尽管LocalStack仅支持其中的一部分。示例值:kinesis,lambda,sqs启动Kinesis、Lambda和SQS。此外,可以指定以下速记值来运行预定义的服务集合:
    • serverless:运行通常用于无服务器应用程序的服务(iamlambdadynamodbapigateways3sns)
  • 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:确定正在使用的模拟。有效值为kinesalitekinesis-mock(默认)
  • KINESIS_ERROR_PROBABILITY:0.0(默认值)和1.0之间的十进制值随机注入ProvisionedThroughputExceededExceptionKinesis API响应中的错误
  • KINESIS_SHARD_LIMIT:整数值(默认值:100)或Infinity(以禁用),导致Kinesis API开始引发异常以模仿default shard limit
  • KINESIS_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-mockKinesis_Provider
  • DYNAMODB_ERROR_PROBABILITY:0.0(默认值)和1.0之间的十进制值随机注入ProvisionedThroughputExceededExceptionDynamoDB 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容器,并跨调用重用它

    dockerdocker-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-fullDocker镜像
  • <SERVICE>_BACKEND:用于特定服务的自定义端点URL,其中<SERVICE>是大写的服务名称(当前适用于:APIGATEWAYCLOUDFORMATIONDYNAMODBELASTICSEARCHKINESISS3SNSSQS)。这样就可以轻松地将第三方服务集成到LocalStack中。您可以查看一个elasticsearch example here
  • FORCE_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-HeadersCORS标头
  • EXTRA_CORS_EXPOSE_HEADERS:要添加到的以逗号分隔的标头名称列表Access-Control-Expose-HeadersCORS标头
  • 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-cli0.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": []
}

客户端库

正在调用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将映射到以下内容localhostURL:

$ 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_FOLDERLocalStack容器的环境变量(请参见上面的配置部分)

与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'),则您可能需要重新安装pipVia 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-stopvagrant 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-09LocalStack 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并成为一名backersupporter今天是项目的第一天!谢谢大家的贡献。♥
  • 2017/07/20:请注意:从版本开始0.7.0,将推送Docker映像并使其处于最新状态新名称localstack/localstack(这意味着您可能需要更新您的配置项配置。)请参阅更新后的End-User License Agreement (EULA)用于新版本。旧的Docker映像(atlassianlabs/localstack)仍然可用,但不会再维护