下午你们都
只是想找人来仔细检查我的工作.以下是保护微服务的有效方法吗?
将我们的单片应用程序和单一的Partner API分解为面向特定业务功能的微服务.它们很可能是在docker容器中运行的小型expressjs应用程序,在弹性beanstalk上,谁知道.他们会住在某个地方:)
我正在研究将Kong作为我的API网关或使用AWS API Gateway来封装我的微服务的细节.而且,它感觉很好.
Kong 的JWT插件将验证JWT的签名,然后将customer_id
标题中的一行传递给微服务.我还要提一下,我们的第三方开发人员也将参与集成乐趣.这是我看到的事情的基本草图:
Kong有一个很好的访问控制插件.我们的应用程序和移动应用程序将以"上帝"权限运行,但我绝对可以将开发人员锁定到特定的路由和方法.
撤销第三方访问将很容易,撤销最终用户访问将不会那么简单,除非我愿意通过生成新秘密立即使所有JWT无效.也许我可以限制令牌时间为10分钟左右,使我们的应用程序会检查他们是否过期,得到一个新的令牌,然后与原始请求得到.这样我就可以在数据库或其他东西中"标记"它们,而不是让JWT生成.
在任何地方都使用SSL,JWT存储在Web浏览器中仅限SSL的cookie中,并且在任何声明中都没有存储敏感信息.
多谢你们.
我正在使用 AWS SAM 并针对 Node 10.x 运行。
希望传递实验模块和顶级等待的标志。
谢谢!
以下是我的代码示例:
function QueueService() {
var key = Config.get("AWS.accessKeyID");
var secret = Config.get("AWS.secretKey");
var credentials = new AWS.Credentials(key, secret, sessionToken = null);
this._sqs = new Promise.promisifyAll(new AWS.SQS({apiVersion: '2012-11-05', region: "us-west-2", endpoint: "sqs.us-west-2.amazonaws.com", credentials: credentials}));
}
QueueService.prototype.FillBirdQueue = function(birds) {
var self = this;
birds.forEach(function(bird_batch) {
var params = {
Entries: bird_batch,
QueueUrl: Config.get("AWS-Queue.Birds")
};
return self._sqs.sendMessageBatchAsync(params);
});
};
Run Code Online (Sandbox Code Playgroud)
如果我省略var self = this;
并调用return this._sqs.sendMessageBatchAsync(params);
我得到一个错误,因为_.sqs
未定义.它似乎this
已经改变了,唯一的方法是保存它以供以后使用var self = this;
.
我觉得有更好的方法来解决这个问题,但我并不完全确定如何使用这些工具.我目前正在使用Bluebird和Lodash,两者都支持绑定.在过去,我通过this
在Bluebird中执行以下操作:
somethingAsync().bind(this).then(function(result){});
Run Code Online (Sandbox Code Playgroud)
我无法使用这种模式,因为我最初没有做任何异步.我只调用一个promise并且需要能够访问我在构造函数中定义的变量来执行此操作. …
我正在尝试使用 Googlephonenumbers
库的 Python 端口来规范化 5000 万个电话号码。我正在从 S3 上的 Parquet 文件读入 SparkDataFrame,然后在数据帧上运行操作。以下函数parsePhoneNumber
表示为 UDF:
def isValidNumber(phoneNum):
try:
pn = phonenumbers.parse(phoneNum, "US")
except:
return False
else:
return phonenumbers.is_valid_number(pn) and phonenumbers.is_possible_number(pn)
def parsePhoneNumber(phoneNum):
if isValidNumber(phoneNum):
parsedNumber = phonenumbers.parse(phoneNum, "US")
formattedNumber = phonenumbers.format_number(parsedNumber, phonenumbers.PhoneNumberFormat.E164)
return (True, parsedNumber.country_code, formattedNumber, parsedNumber.national_number, parsedNumber.extension)
else:
return (False, None, None, None)
Run Code Online (Sandbox Code Playgroud)
下面是我如何使用 UDF 派生新列的示例:
newDataFrame = oldDataFrame.withColumn("new_column", parsePhoneNumber_udf(oldDataFrame.phone)).select("id", "new_column".national_number)
Run Code Online (Sandbox Code Playgroud)
通过运行display(newDataFrame)
或newDataFrame.show(5)
类似方式执行 UDF仅使用集群中的一个执行器,因此 UDF 中的某些内容似乎不会导致它仅在一个工作程序上运行。
如果我正在做任何会阻止它并行运行的事情,你能提供一些见解吗?
执行环境位于由 Databricks 控制的云集群上。
编辑:下面是输出 oldDataFrame.explain
== Parsed Logical …
Run Code Online (Sandbox Code Playgroud) 我们知道,this
下面是指window
对象.我想知道的是我如何this
在不诉诸var self=this;
诡计的情况下传递我的背景.有任何想法吗?我尝试将.bind()添加到第9行的末尾,因此它可以读取,}).bind(this);
但也不起作用.
有任何想法吗?
QueueService.prototype.FillCompanyQueue = function(companies) {
return Promise.map(companies, function (company_batch) {
var params = {
Entries: company_batch,
QueueUrl: Config.get("AWS-Queue.Company")
};
return this._sqs.sendMessageBatchAsync(params);
});
};
Run Code Online (Sandbox Code Playgroud)
编辑:我标记了它,但应该提到我正在使用Bluebird.
编辑:修正了一个错字.
为什么不单击下面模板中描述的按钮按预期工作?这篇博文的内容完全相同.
'use strict';
angular.module('core').component('foo', {
bindings: {
items: '<',
},
controller: function() {
function fire() {
console.log('hello');
}
},
template: "<button type='button' ng-click='$ctrl.fire();'>Test</button>"
});
Run Code Online (Sandbox Code Playgroud)
编辑:为问题添加了更多清晰度
请注意以下代码:
$.ajax({
type: "POST",
url: loginURL,
data: jsonArray,
async: true,
success: function(data, status){
alert(status);
},
error: function(data, status){
alert(status + " 1");
}
});
Run Code Online (Sandbox Code Playgroud)
每次都会抛出错误案例,但我打开了提琴手,我从服务器接收数据就好了。我将面板附加到小部件。在面板中加载的 HTML 中,我包含了最新的 jquery 和登录 javascript 文件。
正常Web开发中的最佳实践要求在样式标记之间放置样式或加载样式表; 但是,我发现有几个电子邮件客户端会忽略任何样式标记,只执行内联样式(www.campaignmonitor.com).我可以解决这个问题,但我不确定CSS是否支持内联媒体查询.我希望我的电子邮件在桌面上显示一些不同.是否支持类似的东西?:
<div id="myDiv" style="@media screen and (max-width:480px;){ color:black; }"></div>
Run Code Online (Sandbox Code Playgroud) 我正在尝试将vb函数转换为ac#方法.下面的表达式在C#中会是什么?
"<\ $日期\ $>"
这会在粘贴到C#项目时导致无法识别的转义序列
bluebird ×2
javascript ×2
node.js ×2
promise ×2
angularjs ×1
apache-spark ×1
api ×1
aws-lambda ×1
c# ×1
css ×1
databricks ×1
html-email ×1
jquery ×1
jwt ×1
kong ×1
lodash ×1
pyspark ×1
python ×1
security ×1
serverless-application-model ×1
vb.net ×1