小编Iul*_*ian的帖子

如何使用Elastic Beanstalk在部署时指定敏感环境变量

我正在使用Elastic Beanstalk部署Python Flask应用程序.我有一个配置文件/.ebextensions/01.config,其中我设置了一些环境变量 - 其中一些应该是秘密的.

该文件看起来像这样:

packages:
  yum:
    gcc: []
    git: []
    postgresql93-devel: []

option_settings:
  "aws:elasticbeanstalk:application:environment":
    SECRET_KEY: "sensitive"
    MAIL_USERNAME: "sensitive"
    MAIL_PASSWORD: "sensitive"
    SQLALCHEMY_DATABASE_URI: "sensitive"
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "app/static/"
Run Code Online (Sandbox Code Playgroud)

保持某些价值观秘密的最佳做法是什么?目前该.ebextensions文件夹受源代码管理,我喜欢这个,因为它与所有人共享,但同时我不想将敏感值保留在源代码管理下.

有没有办法在部署(例如eb deploy -config ...)时通过EB CLI工具指定一些环境变量?或者AWS部署工具如何涵盖此用例?

amazon-web-services amazon-elastic-beanstalk

18
推荐指数
3
解决办法
6726
查看次数

从其他文件导入类时,PyCharm未解析引用

这个问题让我疯狂.我试图从同一目录中的文件导入一个类.PyCharm给了我"未解决的参考"错误.MyClass定义于file.py.

未解决的参考

我发现了这些问题:

我有以下项目结构:

项目结构

我已将src标记为源根...

我设置了"将源根添加到PYTHONPATH":

添加源选项

我试过File - > Invalidate Caches/Restart ..(我甚至重新启动了计算机).

如果我尝试运行它,我在控制台中收到以下错误: ImportError: cannot import name 'MyClass'

解释器是Ubuntu x64 14.04上的Python 3.4上的virtualenv.

如果我安装并导入任何第三方软件包,它们都可以正常工作.

如果我echo $PYTHONPATH在终端尝试它什么都不返回(与...相同env | grep PYTHONPATH.当我尝试这些时,我有适当的virtualenv活动.

有线索吗?

python pycharm

12
推荐指数
2
解决办法
1万
查看次数

带路由的GCE入口总是回退到default-http-backend

Kubernetes版本:1.4.5

我有一个非常简单的服务type: NodePort.它只返回一些文本/info.我使用默认的GKE入口控制器(L7 Google负载均衡器)和TLS.如果我使用以下入口,一切都按预期工作:

工作入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: global-ingress
  namespace: global
  annotations:
    kubernetes.io/ingress.allow-http: "false"
spec:
  tls:
  - secretName: tls-secret
  backend:
    serviceName: gate-front
    servicePort: 80
Run Code Online (Sandbox Code Playgroud)
curl -k https://130.211.39.140/info
POD: gate-front-1871107570-ue07p
IP: 10.0.2.26
REQ: /info
Run Code Online (Sandbox Code Playgroud)
$ kubectl describe ing
Name:           global-ingress
Namespace:      global
Address:        130.211.39.140
Default backend:    gate-front:80 (10.0.2.25:8080,10.0.2.26:8080)
TLS:
  tls-secret terminates
Rules:
  Host  Path    Backends
  ----  ----    --------
  * *   gate-front:80 (10.0.2.25:8080,10.0.2.26:8080)
Annotations:
  backends:         {"k8s-be-31966--f3f0bf21d171a625":"HEALTHY"}
  https-forwarding-rule:    k8s-fws-global-global-ingress--f3f0bf21d171a625
  https-target-proxy:       k8s-tps-global-global-ingress--f3f0bf21d171a625
  url-map:          k8s-um-global-global-ingress--f3f0bf21d171a625
Run Code Online (Sandbox Code Playgroud)

破碎的入口

但是,如果我引入规则并省略默认后端,则所有请求都会返回default …

kubernetes google-kubernetes-engine

9
推荐指数
1
解决办法
3208
查看次数

Amazon ECS私有DockerHub存储库:无法解码提供的docker凭据错误

我在DockerHub上有一个私有存储库,我试图用ECS部署它.我总是得到以下错误:

Unable to decode provided docker credentials module="ecs credentials" type="dockercfg"
Run Code Online (Sandbox Code Playgroud)

或者如果我尝试使用类型的docker:

Unable to decode provided docker credentials module="ecs credentials" type="docker"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了ECS开发者论坛上提到的所有可能性.

我试过了:

ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"auth":"<token>","email":"<email>"}}'
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"username":"<username>","password":"<password>","email":"<email>"}}'
Run Code Online (Sandbox Code Playgroud)

而且(因为https://godoc.org/github.com/aws/amazon-ecs-agent/agent/engine/dockerauth上的文档):

ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/<username>":{"username":"<username>","password":"<password>","email":"<email>"}}'
Run Code Online (Sandbox Code Playgroud)

我也试过没有围绕JSON的''和'""相同的效果.我总是得到同样的错误.

我应该添加我从S3容器获取ecs.config工作正常.我还手动重新输入文件,以防下载文件时出现一些可疑的格式(虽然我不知道这是怎么回事,因为S3文件是一个字节流).

如果我通过SSH连接到实例并执行以下操作:

docker login --username=<username> --password=<password> --email=<email>
Run Code Online (Sandbox Code Playgroud)

然后我可以成功地拉动图像: docker pull A/B:latest

但是,即使我登录后(因此docker生成〜/ .docker/config.json文件),我仍然从ECS得到相同的错误.

我应该提到改变ecs.config文件的所有操作都按如下方式完成:

  1. 将任务数更改为0
  2. 等待完成
  3. sudo stop ecs
  4. 更改配置文件
  5. sudo start ecs
  6. 将任务数更改为1

重复...

它变得非常令人沮丧.自从编写文档以来,它应该如何工作或者它有何变化?

任何帮助,将不胜感激.

编辑

我还尝试在/etc/ecs/ecs.config.json中的JSON配置文件中设置docker auth:

{
        "EngineAuthType": "docker",
        "EngineAuthData": {
                "https://index.docker.io/v1/": {
                        "username": "<me>",
                        "password": "<password>",
                        "email": "<email>"
                }
        }
}
Run Code Online (Sandbox Code Playgroud)

此处描述了JSON配置: …

amazon-web-services amazon-ecs docker dockerhub docker-registry

6
推荐指数
1
解决办法
598
查看次数

Python functools.lru_cache 驱逐回调或等效函数

是否可以定义functools.lru_cache一个项目被驱逐时的回调?在回调中还应该存在缓存的值。

如果没有,也许有人知道一个支持驱逐和回调的轻量级类似字典的缓存?

python python-3.x functools

5
推荐指数
1
解决办法
2495
查看次数

在 OS X 上运行 docker 容器时如何将主机 IP 作为环境变量传递

我有一个 docker 映像,当我运行它时,我需要将主机 IP 地址作为环境变量传递。所以我需要这样的东西:

docker run --rm -it -e HOST_IP=<?????> -p 8000:8000 image
Run Code Online (Sandbox Code Playgroud)

我在 OS X 上使用 Docker。基本上这个镜像正在运行一个我想要连接到本地 PostgreSQL 服务器的服务。该服务从环境变量中读取服务器主机 IP。

如何获取宿主机的IP供docker使用?

如果我使用本地计算机地址 192.168.99.1 (来自ifconfig),psycopg2 会抱怨:

psycopg2.OperationalError: FATAL:  no pg_hba.conf entry for host "192.168.99.100", user "postgres", database "database", SSL off
Run Code Online (Sandbox Code Playgroud)

错误中提到的地址192.168.99.100是我的docker-machine的IP。

我怎样才能获得正确的IP?

postgresql macos docker boot2docker docker-machine

5
推荐指数
1
解决办法
2734
查看次数

整个字符串的CloudSearch模糊匹配不起作用

我已经使用保存地址的记录设置了Amazon CloudSearch域。我想在地址字段上进行模糊文本搜索。

说我有一条记录,其地址如下:

1600 Amphitheatre Parkway, Mountain View, CA 94043.
Run Code Online (Sandbox Code Playgroud)

如果我搜索,'Amphitheatre Parkway, Muntain View'~5没有结果。我基本上删除了“山”中的“ o”,但找不到任何结果。

如果我搜索Muntain~5它,它将找到它,但是如果我搜索Miunntain~5它,则找不到任何东西。

我应该补充一点,我创建了一个自由文本分析计划,没有词干,停用词或同义词。这就是用于类型的地址字段的内容text

我应该如何设置CloudSearch以便进行此类查询?

amazon-web-services amazon-cloudsearch

2
推荐指数
1
解决办法
2075
查看次数