AWS SQS에 메시지를 보내는 간단한 Node 앱이 있습니다. 지역 개발을 위해 AWS SDK에 region
, queueUrl
, accessKeyId
, secretAccessKey
을 제공하고 있습니다.Docker 컨테이너가 호스트와 동기화되지 않습니다.
앱을 도킹하고 컨테이너로 실행할 때까지 모든 것이 제대로 작동합니다. 내가 correctClockSkew: true
를 추가 할 경우 SQS 나는 다음과 같은 오류를
{ SignatureDoesNotMatch: Signature expired: 20161211T132303Z is now earlier than 20161211T142227Z (20161211T143727Z - 15 min.)
을 얻을 뭔가를하고 싶은 그런 때마다이 문제를 해결합니다. 고정 표시기 편집
DockerfileFROM node
RUN mkdir -p /usr/lib/app
WORKDIR /usr/lib/app
COPY app/ /usr/lib/app/
RUN npm install
CMD ["node", "index.js"]
docker run -d user/image
맥 OS
노드 응용 프로그램
process.env.TZ = 'Europe/London';
const AWS = require('aws-sdk');
AWS.config.update({
region: 'eu-west-1',
correctClockSkew: true //this has to be set when running inside a docker container?
});
const sqs = new AWS.SQS({
apiVersion: '2012-11-05',
});
sqs.sendMessage({
QueueUrl: 'https://sqs.eu-west-1.amazonaws.com/522682236448/logback-paddle-prod-errors',
MessageBody: 'HelloSQS',
}, (err, data) => {
if (err) throw err;
});
에서 correctClockSkew: true
하지만 실행 노드를 필요로하고 무엇
원래 AWS의 잘못된 시간 오류가 계속 발생했기 때문에 원래 질문을 만들었습니다. 이제 ElasticSearch에서도 오류가 발생합니다. 왜 내 컨테이너가 호스트와 약 15 분간 안정적으로 동기화되지 않습니다.