python - 无法在 macOS 上启动 localstack
问题描述
使用 Python 3.7.10 和 pip 21.1.2
localstack
由安装pip install localstack
。
Ran命令localstack start
开始,得到
WARNING:localstack.services.plugins: Service "s3" not yet available, retrying...
在文件上,有一个通知,如
(请注意,在 MacOS 上,如果 $TMPDIR 包含 Docker 无法挂载的符号链接,您可能必须运行 TMPDIR=/private$TMPDIR localstack start --docker。)
但是我再次运行了这个命令:
TMPDIR=/private$TMPDIR localstack start --docker
得到这个错误:
Traceback (most recent call last):
File "/opt/code/localstack/localstack/services/plugins.py", line 102, in check_infra
check_service_health(api=name, print_error=print_error)
File "/opt/code/localstack/localstack/services/plugins.py", line 121, in check_service_health
raise e
File "/opt/code/localstack/localstack/services/plugins.py", line 117, in check_service_health
plugin.check(expect_shutdown=expect_shutdown, print_error=print_error)
File "/opt/code/localstack/localstack/services/plugins.py", line 45, in check
return self.check_function(expect_shutdown=expect_shutdown, print_error=print_error)
File "/opt/code/localstack/localstack/services/s3/s3_starter.py", line 44, in check_s3
assert isinstance(out['Buckets'], list)
TypeError: 'NoneType' object is not subscriptable
在办公室问题上,有人说HOSTNAME
从环境中移除。我没有设置它,这是关键原因吗?
为什么会出现这个famous
问题?(而且总是?)
使用 docker-compose 时输出错误
localstack | During handling of the above exception, another exception occurred:
localstack |
localstack | Traceback (most recent call last):
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 102, in check_infra
localstack | check_service_health(api=name, print_error=print_error)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 121, in check_service_health
localstack | raise e
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 117, in check_service_health
localstack | plugin.check(expect_shutdown=expect_shutdown, print_error=print_error)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 45, in check
localstack | return self.check_function(expect_shutdown=expect_shutdown, print_error=print_error)
localstack | File "/opt/code/localstack/localstack/services/s3/s3_starter.py", line 44, in check_s3
localstack | assert isinstance(out['Buckets'], list)
localstack | TypeError: 'NoneType' object is not subscriptable
localstack |
localstack | During handling of the above exception, another exception occurred:
localstack |
localstack | Traceback (most recent call last):
localstack | File "/opt/code/localstack/localstack/utils/cli.py", line 223, in main
localstack | subcommand['function'](argv, args)
localstack | File "/opt/code/localstack/localstack/utils/cli.py", line 61, in cmd_infra
localstack | start_infra_locally()
localstack | File "/opt/code/localstack/localstack/utils/bootstrap.py", line 377, in start_infra_locally
localstack | return infra.start_infra()
localstack | File "/opt/code/localstack/localstack/services/infra.py", line 388, in start_infra
localstack | raise e
localstack | File "/opt/code/localstack/localstack/services/infra.py", line 374, in start_infra
localstack | thread = do_start_infra(asynchronous, apis, is_in_docker)
localstack | File "/opt/code/localstack/localstack/services/infra.py", line 460, in do_start_infra
localstack | thread = start_api_services()
localstack | File "/opt/code/localstack/localstack/utils/analytics/profiler.py", line 156, in wrapped
localstack | return f(*args, **kwargs)
localstack | File "/opt/code/localstack/localstack/services/infra.py", line 449, in start_api_services
localstack | check_infra(apis=apis)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 111, in check_infra
localstack | check_infra(retries - 1, expect_shutdown=expect_shutdown, apis=apis, additional_checks=additional_checks)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 111, in check_infra
localstack | check_infra(retries - 1, expect_shutdown=expect_shutdown, apis=apis, additional_checks=additional_checks)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 111, in check_infra
localstack | check_infra(retries - 1, expect_shutdown=expect_shutdown, apis=apis, additional_checks=additional_checks)
localstack | [Previous line repeated 7 more times]
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 109, in check_infra
localstack | raise e
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 102, in check_infra
localstack | check_service_health(api=name, print_error=print_error)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 121, in check_service_health
localstack | raise e
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 117, in check_service_health
localstack | plugin.check(expect_shutdown=expect_shutdown, print_error=print_error)
localstack | File "/opt/code/localstack/localstack/services/plugins.py", line 45, in check
localstack | return self.check_function(expect_shutdown=expect_shutdown, print_error=print_error)
localstack | File "/opt/code/localstack/localstack/services/s3/s3_starter.py", line 44, in check_s3
localstack | assert isinstance(out['Buckets'], list)
localstack | TypeError: 'NoneType' object is not subscriptable
localstack |
localstack | ERROR: 'NoneType' object is not subscriptable
localstack | (. .venv/bin/activate; exec bin/localstack start --host)
localstack | make: *** [Makefile:55: infra] Error 1
localstack | Waiting for all LocalStack services to be ready
localstack | Starting local dev environment. CTRL-C to quit.
localstack | 2021-10-06 06:09:13,229 INFO success: infra entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
localstack |
localstack | LocalStack version: 0.12.12
localstack | LocalStack Docker container id: 388ad2388117
localstack | LocalStack build date: 2021-06-07
localstack | LocalStack build git hash: ea4dcf40
解决方案
或者,您可以使用 docker-compose 启动 localstack。如下所示创建docker-compose.yml文件,并使用此命令docker -compose up完美地开始使用 localstack。一旦 localstack 启动并运行,您还可以通过点击 url 作为http://localhost:4566/health来检查所有服务的运行状况
先决条件:
- 如果您还没有安装 Docker,请安装 Docker。
version: "3.8"
services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME-localstack}"
image: localstack/localstack
hostname: localstack
networks:
- test-net
ports:
- "4566:4566"
environment:
- SERVICES=s3,sqs,cloudformation,iam,cloudwatch
- DEBUG=1
- DATA_DIR=/tmp/localstack/data
- LAMBDA_EXECUTOR=docker-reuse
- LAMBDA_REMOTE_DOCKER=false
- LAMBDA_REMOVE_CONTAINERS=true
- DOCKER_HOST=unix:///var/run/docker.sock
- HOST_TMP_FOLDER=${TMPDIR}
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
networks:
test-net:
external: false
driver: bridge
name: test-net
推荐阅读
- php - 大量数据时PHP脚本内部服务器错误
- php - Voyager:“@php artisan package:discover --ansi 处理返回的 post-autoload-dump 事件,错误代码为 1”
- html - css 文件不会加载到我的 html 网页中
- python - 修改 soft-max 函数以在列表中的最小值上给出最高概率的最佳方法是什么?
- vb.net - VB.NET:搜索列表视图并删除不匹配的项目
- sas - 如何连接 SAS 多个宏变量
- c++ - 即使在文件中找到密码,线程也不会停止运行
- c# - Unity 2D - 如何在 TopDown 射击游戏中使用操纵杆瞄准?
- amazon-web-services - 无法在 MariaDB 的 AWS RDS 实例上执行 mysql_upgrade
- sql - 当临时表位置上仅存在基于修订 ID 的值站点程序集时,如何进行状态更新?