小编nik*_*nik的帖子

适用于Amazon Elastic Search Cluster的正确访问策略

我最近开始使用新的Amazon Elasticsearch Service,我似乎无法弄清楚我需要的访问策略,因此我只能从我的EC2实例访问具有特定IAM角色的服务.

以下是我目前为ES域分配的访问策略的示例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::[ACCOUNT_ID]:role/my_es_role",
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN]/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但正如我所说,这不起作用.我登录到EC2实例(my_es_role附加了角色)并尝试在"https://*.es.amazonaws.com"端点上运行简单的curl调用,我收到以下错误:

{"消息":"用户:匿名无权执行:es:ESHttpGet on resource:arn:aws:es:us-east-1:[ACCOUNT_ID]:domain/[ES_DOMAIN] /"}

有没有人知道我必须在访问策略中更改什么才能使其正常工作?

amazon-ec2 amazon-web-services elasticsearch amazon-iam amazon-elasticsearch

96
推荐指数
4
解决办法
5万
查看次数

在多个任务上应用with_items

是否可以将项目列表应用于Ansible playbook中的多个任务?举个例子:

- name: download and execute
  hosts: server1
  tasks:
  - get_url: url="some-url/{{item}}" dest="/tmp/{{item}}"
    with_items:
    - "file1.sh"
    - "file2.sh"
  - shell: /tmp/{{item}} >> somelog.txt
    with_items:
    - "file1.sh"
    - "file2.sh"
Run Code Online (Sandbox Code Playgroud)

是否有一些语法可以避免重复项目列表?

ansible ansible-playbook

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

Kubernetes costum-columns选择数组中的元素

我尝试编写一个模板,列出我的服务名称以及它们的外部端点+端口.但是,我没有找到任何示例或文档如何从数组中选择元素,在本例中是portports数组中选择.

我走得那么远:

 kubectl get service -o=custom-columns=NAME:.metadata.name,IP:.spec.clusterIP,PORT:.spec.ports
Run Code Online (Sandbox Code Playgroud)

举一个更具体的例子,这是我的运行服务:

NAME                  CLUSTER-IP     EXTERNAL-IP      PORT(S)                               AGE
kafka-manager         10.3.242.200   146.148.20.235   9000:32619/TCP                        11h
spark-master          10.3.242.209   104.199.21.235   7077:30588/TCP                        11h
Run Code Online (Sandbox Code Playgroud)

我希望得到:

NAME                  EXTERNAL-ENDPOINT     
kafka-manager         146.148.20.225:9000
spark-master          104.199.21.225:7077
Run Code Online (Sandbox Code Playgroud)

kubernetes kubectl

10
推荐指数
3
解决办法
7412
查看次数

GitLab 中的 Concat 变量名

我们在一个团队中使用 Gitlab 项目。每个开发人员在云端都有自己的 Kubernetes 集群,在 GitLab 中有自己的分支。我们使用 GitLab-CI 自动构建新容器并将它们部署到我们的 Kubernetes 集群。

目前我们有一个.gitlab-ci.yml看起来像这样的东西:

variables:
    USERNAME: USERNAME
    CI_K8S_PROJECT: ${USERNAME_CI_K8S_PROJECT}
    REGISTRY_JSON_KEY_FILE: ${USERNAME_REGISTRY_JSON_KEY_FILE}
    [...]

stages:
  - build
  - deploy
  - remove

build-zeppelin:
  stage: build
  image: docker:latest
  variables:
    image_name: "zeppelin"
  only:
    - ${USERNAME}@Gitlab-Repo
  tags:
    - cloudrunner
  script:
    - docker login -u _json_key -p "${REGISTRY_JSON_KEY_FILE?}" https://eu.gcr.io
    - image_name_fqdn="eu.gcr.io/${CI_K8S_PROJECT?}/${image_name?}:latest"
    - docker build -t ${image_name_fqdn?} .
    - docker push ${image_name_fqdn?} 
    - echo "Your new image is '${image_name_fqdn?}'. Have fun!"

[...]
Run Code Online (Sandbox Code Playgroud)

因此,一开始我们通过使用 USERNAME 前缀来引用重要信息。这工作得很好,但有问题,因为我们需要在来自另一个用户的每个拉取请求之后更正它们。

因此,我们寻找一种方法来使 gitlab-ci 文件对每个开发人员都相同,同时仍然引用一些针对每个开发人员不同的 …

yaml gitlab-ci

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

没有名为异常前缀_*的模块

我尝试在我的 Airflow 安装中运行Python Operator Example。安装在同一台机器上部署了 webserver、scheduler 和 worker,并且对所有非 PytohnOperator 任务都没有抱怨。任务失败,抱怨无法导入模块“unusual_prefix_*”,其中 * 是包含 DAG 的文件的名称。

完整的堆栈跟踪:

['/usr/bin/airflow', 'run', 'tutorialpy', 'print_the_context', '2016-08-23T10:00:00', '--pickle', '90', '--local']
[2016-08-29 11:35:20,054] {__init__.py:36} INFO - Using executor CeleryExecutor
[2016-08-29 11:35:20,175] {configuration.py:508} WARNING - section/key [core/fernet_key] not found in config
Traceback (most recent call last):
  File "/usr/bin/airflow", line 90, in <module>
    args.func(args)
  File "/opt/mf-airflow/airflow/lib/python2.7/site-packages/airflow/bin/cli.py", line 214, in run
    DagPickle).filter(DagPickle.id == args.pickle).first()
  File "/opt/mf-airflow/airflow/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2659, in first
    ret = list(self[0:1])
  File "/opt/mf-airflow/airflow/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2457, in __getitem__ …
Run Code Online (Sandbox Code Playgroud)

python pickle airflow

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

ElasticSearch中的"物化视图"

我有一个查询,每次加载网站时都会运行.此查询聚合了三个不同的术语字段和大约300万个文档,因此需要6-7秒才能完成.数据不会频繁改变,结果的当前性并不重要.

我知道我可以使用别名在RDMS世界中创建"视图".是否也可以填充它,因此查询结果会被缓存?在这种情况下,缓存是否有任何其他方式可能有所帮助,或者我是否必须为聚合数据创建其他索引并不时更新?

elasticsearch elasticsearch-5

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

Gitlab Trigger API返回404

我创建了一个触发器(使用settings/ci_cd页面).触发器下方的说明告诉我使用版本3 API调用它(当然,我将令牌变量设置为触发器部分下面的令牌):

curl -X POST \
     -F token=${TOKEN} \
     -F ref=master \
     https://gitlab.com/api/v3/projects/2313008/trigger/builds
Run Code Online (Sandbox Code Playgroud)

哪个只返回:

{"未找到错误404"}

我还尝试遵循API v4文档:

curl --request POST \
     --form token=${TOKEN} \
     --form ref=master \
     https://gitlab.com/api/v4/projects/2313008/trigger/pipeline
Run Code Online (Sandbox Code Playgroud)

返回相同的错误.

是否需要其他设置?

gitlab gitlab-ci gitlab-api

6
推荐指数
2
解决办法
1567
查看次数

提取嵌套的JSON对象的架构

假设这是源json文件:

{    
    "name": "tom",
    "age": 12,
    "visits": {
        "2017-01-25": 3,
        "2016-07-26": 4,
        "2016-01-24": 1
    }
}
Run Code Online (Sandbox Code Playgroud)

我想得到:

[
  "age",
  "name",
  "visits.2017-01-25",
  "visits.2016-07-26",
  "visits.2016-01-24"
]
Run Code Online (Sandbox Code Playgroud)

我可以使用:提取键jq '. | keys' file.json,但这会跳过嵌套字段。如何包括那些?

json nested key jq

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

在极坐标中使用过滤器列表

有没有办法通过多个条件过滤极坐标数据帧?

这是我的用例以及我目前如何解决它,但我想知道如果我的日期列表更长,如何解决它:

dates = ["2018-03-25", "2019-03-31", "2020-03-29"]
timechange_forward = [(datetime.strptime(x+"T02:00", '%Y-%m-%dT%H:%M'), datetime.strptime(x+"T03:01", '%Y-%m-%dT%H:%M')) for x in dates]

df.filter(
    pl.col("time").is_between(*timechange_forward[0]) | 
    pl.col("time").is_between(*timechange_forward[1]) | 
    pl.col("time").is_between(*timechange_forward[2])
) 
Run Code Online (Sandbox Code Playgroud)

python-polars

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

拥有一个具有所有可能方法的对象

有没有一种方法可以创建一个类,以某种方式模拟模拟以实现所有可能的功能?所以它不应该返回AttributeError,而应该打印一条语句。

python

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