Python 3.x 为什么我在尝试使用Boto连接到Ambassador背后的ElasticMQ服务时会遇到SQSError:404?
我有一个elasticmq docker容器,它被部署为使用Kubernetes的服务。此外,该服务通过大使向外部用户公开 这是服务的yaml文件Python 3.x 为什么我在尝试使用Boto连接到Ambassador背后的ElasticMQ服务时会遇到SQSError:404?,python-3.x,networking,kubernetes,boto,elastic-mq,Python 3.x,Networking,Kubernetes,Boto,Elastic Mq,我有一个elasticmq docker容器,它被部署为使用Kubernetes的服务。此外,该服务通过大使向外部用户公开 这是服务的yaml文件 --- kind: Service apiVersion: v1 metadata: name: elasticmq annotations: getambassador.io/config: | --- apiVersion: ambassador/v1 k
---
kind: Service
apiVersion: v1
metadata:
name: elasticmq
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Mapping
name: elasticmq
prefix: /
host: elasticmq.localhost.com
service: elasticmq:9324
spec:
selector:
app: elasticmq
ports:
- port: 9324
protocol: TCP
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: elasticmq
labels:
app: elasticmq
spec:
replicas: 1
selector:
matchLabels:
app: elasticmq
template:
metadata:
labels:
app: elasticmq
spec:
containers:
- name: elasticmq
image: elasticmq
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9324
livenessProbe:
exec:
command:
- /bin/bash
- -c
- nc -zv localhost 9324 -w 1
initialDelaySeconds: 60
periodSeconds: 5
volumeMounts:
- name: elastimq-conf-volume
mountPath: /elasticmq/elasticmq.conf
volumes:
- name: elastimq-conf-volume
hostPath:
path: /path/elasticmq.conf
现在,我可以通过做卷曲来检查elasticmq容器是否健康和正常工作:
$ curl elasticmq.localhost.com?Action=ListQueues&Version=2012-11-05
[1] 10355
<ListQueuesResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
<ListQueuesResult>
</ListQueuesResult>
<ResponseMetadata>
<RequestId>00000000-0000-0000-0000-000000000000</RequestId>
</ResponseMetadata>
</ListQueuesResponse>[1]+ Done
我认为这与elasticmq.conf中指定的外部主机有关,因此我将其更改为:
include classpath("application.conf")
// What is the outside visible address of this ElasticMQ node (used by rest-sqs)
node-address {
protocol = http
host = elasticmq.localhost.com
port = 80
context-path = ""
}
rest-sqs {
enabled = true
bind-port = 9324
bind-hostname = "0.0.0.0"
// Possible values: relaxed, strict
sqs-limits = relaxed
}
我原以为更改elasticmq配置会起作用,但事实并非如此。我怎样才能让它工作
include classpath("application.conf")
// What is the outside visible address of this ElasticMQ node (used by rest-sqs)
node-address {
protocol = http
host = elasticmq.localhost.com
port = 80
context-path = ""
}
rest-sqs {
enabled = true
bind-port = 9324
bind-hostname = "0.0.0.0"
// Possible values: relaxed, strict
sqs-limits = relaxed
}