amazon-web-services - 让 SNS 以编程方式工作...通过命令行工作
问题描述
尝试在我的 PROD 环境中对 SNS 进行简单调用,但它不断抛出SELF_SIGNED_CERT_IN_CHAIN
错误。这在我的本地和 DEV 环境中使用相同的代码非常有效。
我最初将证书传递给 AWS.config 但将其取出(请参阅评论)。我猜它在某处寻找证书,但似乎无法在 AWS 文档中找到。
var AWS = require('/projects/aws-sdk/node_modules/aws-sdk');
var fs = require('fs'), https=require('https');
//var certs=fs.readFileSync('/etc/pki/ca-trust/extracted/pem/ca-bundle.pem).toString().split(/(?=-----BEGIN CERTIFICATE-----)/);
AWS.config.update({
httpOptions: {
agent: new https.Agent({rejectUnauthorized:true})
}
});
AWS.config.update({
region: 'us-iso-east-1'
});
var params = {
Message: "SNS Test",
TopicArn: 'arn:aws-iso:sns:us-iso-east-1:7446189262331:SNS_EROR_PROD' };
var publishTextPromise = new AWS.SNS({apiVersion:'2010-03-31'}).publish(params).promise();
logger.info("publishPromise:"+JSON.stringify(publishTextPromise));
logger.info("Before call to promise");
publishTextPromise.then(
function(data) {
logger.info("inside call");
}).catch(function(err) {
logger.info("CATCH ERROR", err);
});
一切似乎都正常运行,直到publishTextPromise.then
它落入catch
抛出该证书错误的块中。
当我注销的值时,publishTextPromise
我得到了我认为是垃圾的值:publishPromise:{"_c":[],"_s":0,"_d":false,"_h":0,"_n":false}
作为一个单独的测试,我使用命令行 CLI 订阅该 sns 主题并向其发布消息。它在 PROD 中效果很好!命令行有效,但代码无效。诡异的。
我上面的示例是直接从 AWS 文档中提取的,所以我认为它会起作用吗?希望有人看到我可能错过的愚蠢的东西!谢谢大家!
解决方案
推荐阅读
- php - 在php中对数组中的一个double值进行分组
- neo4j - 在 Neo4j Cypher 中,$ 符号作为单词的前缀是什么意思
- sql - 在 BigQuery 中使用 COALESCE 时出现无法识别的名称
- css - 从一个 svg 变形到另一个
- c++ - 模板类实例化中的指针转换无效
- android - 一旦我开始输入,Google 的 Intent 活动就会自动完成崩溃
- python - 我在 Python 中有 2 个用于查找素数的代码。为什么在这两个代码中,一个产生的结果比另一个快得多
- r - 使用 mapply 将矩阵应用于函数
- javascript - 根据键的值在包含多个对象的数组中搜索
- c++ - 命名空间范围问题