小编tra*_*nag的帖子

如何打印/调试数据源资源的所有可用字段?

假设我有以下 Terraform 脚本:

locals {
  provisioned_product_vpc_name = "provision-vpc-product"
}

resource "aws_cloudformation_stack" "provisioned_product_vpc" {
  name = local.provisioned_product_vpc_name

  template_body = "<foobar>"
}

data "aws_cloudformation_stack" "product_vpc" {
  name = local.provisioned_product_vpc_name
  depends_on = [aws_cloudformation_stack.provisioned_product_vpc]
}
Run Code Online (Sandbox Code Playgroud)

aws_cloudformation_stack.product_vpc我如何以交互方式查看包含值的所有字段。目前我必须手动打开 AWS 控制台并在那里查找正确的值。

或者这是不可能的

amazon-web-services terraform

7
推荐指数
1
解决办法
9091
查看次数

为什么 Pip 忽略具有嵌套依赖项的配置存储库?

问题

假设我在 Linux 计算机上有一个完全空的 Python+Pip+R (pip 19.3.1) 环境,并且我想使用rpy2pip 安装该包。由于我位于公司防火墙后面,因此我将 pip 配置为使用私有存储库。

[global]
index-url = http://private.com/artifactory/api/pypi/PyPI/simple
trusted-host = private.com
Run Code Online (Sandbox Code Playgroud)

现在我执行pip install rpy2,我会得到以下错误:

Couldn't find index page for 'cffi'
 Download error on https://pypi.python.org/simple/
Run Code Online (Sandbox Code Playgroud)

cffi因此,pip 尝试通过从官方 PyPi 存储库查找和安装来解决嵌套依赖关系。它完全忽略我配置的存储库。

当我pip install cffi && pip install rpy2一次又一次地运行时,一切都按预期进行。

这是完整的错误输出:

ERROR: Command errored out with exit status 1:
 command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-8vuadu93/rpy2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-8vuadu93/rpy2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-8vuadu93/rpy2/pip-egg-info
     cwd: /tmp/pip-install-8vuadu93/rpy2/
Complete …
Run Code Online (Sandbox Code Playgroud)

python pip artifactory rpy2 python-cffi

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

prometheus/client_python:如何在不重新启动的情况下分配新注册表?

我编写了一个小脚本来检测 Flask 应用程序,我想编写单元测试,其中每个测试都可以针对模拟 Flask 应用程序编写请求并测试指标,而无需处理来自以前测试方法的指标/请求,如下所示:

def test_grouped_codes():
    app = create_app()
    instrument(app)
    # test stuff
Run Code Online (Sandbox Code Playgroud)

但我无法“重置”注册表,因此我总是收到错误“CollectorRegistry 中的时间序列重复”。

如何在运行时重置 Prometheus Python 客户端库的注册表(或将其设置为空注册表)?

除其他外,我尝试了以下方法,但它不起作用:

def create_app():
    app = Flask(__name__)
    registry = CollectorRegistry()  # Create new registry.
    prometheus_client.REGISTRY = registry  # Try to override global registry.
    prometheus_client.registry.REGISTRY = registry  # Try to override global registry.

    @app.route("/")
    def home():
        return "Hello World!"

    # More functions ...

    @app.route("/metrics")
    @FlaskInstrumentator.do_not_track()
    def metrics():
        data = generate_latest(registry)
        headers = {
            "Content-Type": CONTENT_TYPE_LATEST,
            "Content-Length": str(len(data))}
        return data, 200, headers

    return …
Run Code Online (Sandbox Code Playgroud)

prometheus

4
推荐指数
1
解决办法
8179
查看次数

如何在 AWS ECS 中的同一任务中的容器之间进行通信?

我有一个包含多个容器定义service-A的任务定义task-A,例如nginxgrafana。这些容器如何相互通信?使用的网络是默认的桥接网络。

我试过了curl grafana:3000,但容器无法解析名称。如果我在本地机器上尝试相同的方法,它会起作用。我错过了什么?

这是我的任务定义:

resource "aws_ecs_task_definition" "this" {
  family = "x"
  execution_role_arn = "x"
  task_role_arn = "x"
  container_definitions = jsonencode(local.task_definition)
}
Run Code Online (Sandbox Code Playgroud)

容器定义摘录:

locals {
  task_definition = [
    {
      name: "nginx",
      image: "nginx:latest",
      portMappings: [{
        containerPort: 80,
        hostPort: 0,
        protocol: "tcp"
      }],
      dependsOn: [{
        "containerName": "grafana",
        "condition": "START"
      }]
    },
    {
      name: "grafana",
      image: "grafana/grafana:latest",
      portMappings: [{
        containerPort : 3000,
        hostPort: 0,
        protocol: "tcp"
      }]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

amazon-ecs docker

3
推荐指数
1
解决办法
569
查看次数

有人使用 $__interval 来选择固定值的范围吗?

在 PromQL 中,我们使用范围向量选择器来获取诸如 之类的函数的范围向量rate()。Grafana 提供了动态变量$__interval,其使用方式如下:

sum(rate(my_metric{foo="bar"}[$__interval]))
Run Code Online (Sandbox Code Playgroud)

它的值是一个近似值,因此生成的范围向量包含大约每个像素(或更多)的一个条目。据我了解,这可以防止过度获取。

到目前为止,一切都很好。但看看 Grafana Cloud 中可用的多个仪表板或例如 Robust Perception 的演示仪表板,没有人使用$__interval. 相反,人们选择1m5m即使不使用记录规则或警报。

这是有原因的吗?

grafana prometheus

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

部署能否确保永远不会有多个 Pod 运行?

如果我的部署仅定义了一个副本,我能否确保只有一个 pod 正在运行?

我注意到,当我kubectl rollout在很短的时间内执行类似操作时,我会在日志中看到两个 Pod。

kubernetes kubernetes-deployment kubernetes-pod

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