我在460
Application 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
如何在 Slack 应用程序中存储永久数据?
例如,Opsidian slack 应用程序有一个用于添加 AWS 密钥的命令。它在哪里存储这些密钥以及它如何知道为特定团队使用特定密钥?
这是在奥普西迪亚那边吗?如果是这种情况,它是否只使用team.info
端点并使用每个命令来匹配它?
我搜索了他们的文档和谷歌,但没有成功。
我试图限制我的存储桶以拒绝所有内容,但允许从一个特定 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) 我正在尝试创建具有与其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)
这将创建单个文件,但每个文件都包含所有域和名称.
我正在尝试为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
我在这里缺少什么?如果已经安装了驱动器,跳过命令的最佳方法是什么?