小编gkr*_*zek的帖子

应用程序负载均衡器上的状态代码460

我在460Application Load Balancer的日志中看到了大量的状态代码.我没有在时间,服务器或请求URL方面看到这些代码的任何模式.根据这篇论坛帖子,460意味着:

在空闲超时在前端或后端连接上启动之前,客户端已关闭与ALB的连接.

我可以看到请求发送到后端服务器,后端处理请求没有问题,非常快.为什么会发生这些错误?此ALB使用6-8个后端服务器进行大量流量.

示例ALB日志:

https 2017-01-30T22:46:27.451363Z app/LOAD-BALANCER/bbab458ad0b80d X.X.X.X:55999 10.5.X.X:80 0.000 -1 -1 460 - 132 0 "GET https://www.website.com:443/app/page HTTP/1.1" "-" ECDHE-RSA-AES128-SHA TLSv1 arn:aws:elasticloadbalancing:us-west-2:743462462234:targetgroup/TARGET-GROUP/e6120e5adr245b79107e "Root=1-588fc23e-77aea5adf4534af3de09659d13a08"

来自后端的示例NGINX日志:

X.X.X.X 1485807955.048 www.website.com /app/page - GET 200 - 0.056 24 text/html; charset=UTF-8 -

http nginx amazon-ec2 amazon-web-services elastic-load-balancer

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

如何在 Slack 应用程序中存储配置项

如何在 Slack 应用程序中存储永久数据?

例如,Opsidian slack 应用程序有一个用于添加 AWS 密钥的命令。它在哪里存储这些密钥以及它如何知道为特定团队使用特定密钥?

这是在奥普西迪亚那边吗?如果是这种情况,它是否只使用team.info端点并使用每个命令来匹配它?

我搜索了他们的文档和谷歌,但没有成功。

node.js slack-api slack

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

AWS S3 存储桶策略显式拒绝

我试图限制我的存储桶以拒绝所有内容,但允许从一个特定 IAM 用户上传并根据referer标头获取对象。这是我的政策:

{
    "Version": "2012-10-17",
    "Id": "Meteor refer policy",
    "Statement": [
        {
            "Sid": "allow upload",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::556754141176:user/username"
            },
            "Action": "s3:PutObject*",
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*"
            ]
        },
        {
            "Sid": "Allow get",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "bucketname/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "http://myapp.com*",
                        "http://localhost*"
                    ]
                }
            }
        },
        {
            "Sid": "Explicit deny",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "bucketname/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "http://myapp.com*",
                        "http://localhost*"
                    ]
                }
            } …
Run Code Online (Sandbox Code Playgroud)

policy acl amazon-s3 amazon-web-services aws-sdk

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

Ansible循环 - 如何将模板值与with_items匹配?

我正在尝试创建具有与其with_items值匹配的值的文件.

我有一个像这样的var列表:

 sites:
   - domain: google.com
     cname: blue
   - domain: facebook.com
     cname: green
   - domain: twitter.com
     cname: red
Run Code Online (Sandbox Code Playgroud)

我为此任务中的列表中的每个对象创建单个文件:

- name: Create files
  template:
    src: file.conf
    dest: "/etc/nginx/conf.d/{{item.cname}}.conf"
  with_items: "{{sites}}"
Run Code Online (Sandbox Code Playgroud)

这些都很有效.我需要什么,有我的模板文件为它创建一个名为blue.conf并且有google.com只是.

我尝试了很多变化.我最接近的是:

   server {
        listen 80;
        listen [::]:80;
      {% for item in sites %}
        server_name  {{item.cname}}.es.nodesource.io;

        location / {
          proxy_pass {{item.domain}};
        }
      {% endfor %}
    }
Run Code Online (Sandbox Code Playgroud)

这将创建单个文件,但每个文件都包含所有域和名称.

jinja2 ansible ansible-template

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

Ansible-检查驱动器是否已安装

我正在尝试为Ansible脚本创建一个EBS角色。我将创建EBS卷,并暂时自己通过控制台将其附加。我希望该角色运行命令并在尚未安装驱动器的情况下安装驱动器,但是如果已安装该驱动器,请跳过此操作。

我有特定于主机的变量,这些变量给出了磁盘和挂载点的列表:

ebs_vols:
  - drive: /dev/sdb
    mount_point: /mnt/ebs1
    directory: /var/lib/mysql
  - drive: /dev/sdc
    mount_point: /mnt/ebs2
    directory: /var/backups
Run Code Online (Sandbox Code Playgroud)

我想让我的任务使用df命令检查每个驱动器,并查看是否已安装。如果驱动器已安装,则跳过命令:

- name: Check if drives are already mounted
  shell: df | grep "{{item.drive}}" | wc -l
  with_items: "{{ebs_vols}}"
  register: ebs_checked

- name: output debug
  debug: var=ebs_checked

- name: Make filesystem
  filesystem:
    fstype: xfs
    dev: "{{item.item.drive}}"
  when: "{{item.stdout}} == 0"
  with_items: ebs_checked.results
Run Code Online (Sandbox Code Playgroud)

当我运行它时,似乎检查每个磁盘都很好,因为的输出debug是具有正确驱动器和stdout的对象。问题出在Make filesystem任务上。错误列出以下错误:

条件检查“ {{item.stdout}} == 0”失败。错误是:评估条件({{item.stdout}} == 0)时出错:“ ansible.vars.unsafe_proxy.AnsibleUnsafeText对象”没有属性“ stdout” \ n \ n

我在这里缺少什么?如果已经安装了驱动器,跳过命令的最佳方法是什么?

ansible

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