鉴于此代码:
this.form = this.formBuilder.group({
email: ['', [Validators.required, EmailValidator.isValid]],
hasAcceptedTerms: [false, Validators.pattern('true')]
});
Run Code Online (Sandbox Code Playgroud)
如何从中获取所有验证错误this.form?
我正在编写单元测试,并希望在断言消息中包含实际的验证错误.
我正在构建一个由Angular2单页面应用程序和在ECS上运行的REST API组成的系统.API在.Net/Nancy上运行,但这可能会发生变化.
我想尝试一下Cognito,这就是我想象的身份验证工作流程:
我的问题是关于第3步.我的服务器(或者更确切地说:我的无状态,自动扩展,负载平衡的Docker容器)如何验证令牌是否可信?由于"服务器"还没有出台的智威汤逊本身,它不能使用自己的秘密(如在基本JWT例如描述这里).
我已经阅读了Cognito文档并搜索过很多内容,但是我找不到任何关于如何在服务器端使用JWT的好指南.
我有一个Ansible手册,用于将Java应用程序部署为init.d守护程序.
作为Ansible和Linux的初学者,我很难根据主机的状态有条件地在主机上执行任务.
也就是说,我有一些主机已经提供服务,并且在我做任何其他事情之前我想要停止它.然后可能会有新主机,但尚未提供服务.所以我不能简单地使用service: name={{service_name}} state=stopped,因为这将在新主机上失败.
我怎么能做到这一点?这是我到目前为止所拥有的:
- name: Check if Service Exists
shell: "if chkconfig --list | grep -q my_service; then echo true; else echo false; fi;"
register: service_exists
# This should only execute on hosts where the service is present
- name: Stop Service
service: name={{service_name}} state=stopped
when: service_exists
register: service_stopped
# This too
- name: Remove Old App Folder
command: rm -rf {{app_target_folder}}
when: service_exists
# This should be executed on all hosts, but only after …Run Code Online (Sandbox Code Playgroud) 我有一个AWS Lambda函数,它订阅DynamoDB流并配置了SQS死信队列(DLQ).我可以看到在管理控制台中配置了正确的队列.我也小心翼翼地sqs:SendMessage在我的DLQ上赋予我的功能权限.
订阅有效,但仍然"挂起"调用错误,就像没有配置DLQ一样.即,如果有消息导致未处理的异常,则该函数继续重试此消息,直到它从流中删除.我可以看到调用错误的数量增加,并且函数的Cloudwatch仪表板中没有显示DLQ错误.SQS队列保持为空.
我想要的是失败的消息转发到我的DLQ并且订阅继续到下一条消息.有任何想法吗?
正如Jonathan Seed在下面所说,DLQ目前不适用于基于流的订阅.AWS Support确认他们正在努力实现这一点.
我的目标是确保DynamoDB流发布的记录以"正确"的顺序处理.我的表包含客户的事件.哈希键是事件ID,范围键是时间戳."正确"订单意味着按顺序处理同一客户ID的事件.可以并行处理不同的客户ID.
我正在通过Lambda函数使用流.每个碎片自动生成消费者.因此,如果运行时决定对流进行分片,则消耗并行发生(如果我做对了)并且我冒着在CustomerCreated之前处理CustomerAddressChanged事件的风险(例如).
该文档暗示,有没有办法能够影响分片.但他们并没有这么明确地说.有没有办法,例如,通过使用客户ID和时间戳组合范围键?
amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams
我在内存中创建PDF文档作为OutputStreams.这些应该上传到S3.我的问题是,它无法创建一个PutObjectRequest从OutputStream(直接按这个线程在AWS开发论坛).我aws-java-sdk-s3在Dropwizard应用程序中使用v1.10.8 .
到目前为止我能看到的两个解决方法是:
OutputStream到a InputStream并接受使用两倍量的RAM.OutputStream到一个InputStream并接受额外线程的开销(参见这个答案)如果我找不到更好的解决方案,我会选择#1,因为在我的设置中,它看起来好像能够比线程/ CPU更容易买得起额外的内存.
到目前为止,我是否还有其他任何可能更有效的方式来实现这一目标?
编辑:
我OutputStreams为ByteArrayOutputStream小号
我有一个带有两个ICollectionViews 的ViewModel,它们被绑定为ItemsSource两个不同的ListBoxes.两者都包装相同ObservableCollection,但使用不同的过滤器.最初一切正常,两个ListBox都正确填充.
但是,当我更改ObservableCollection中的项并修改与过滤相关的属性时,ListBoxes不会更新.在调试器中,我发现两个ICollectionVIews的SourceCollection都为null,尽管我的ObservableCollection仍然存在.
这是我修改项目的方法,确保通过删除和添加相同的项目来更新ICollectionViews:
private void UnassignTag(TagViewModel tag)
{
TrackChangedTagOnCollectionViews(tag, t => t.IsAssigned = false);
}
private void TrackChangedTagOnCollectionViews(TagViewModel tag, Action<TagViewModel> changeTagAction)
{
_tags.Remove(tag);
changeTagAction.Invoke(tag);
_tags.Add(tag);
}
Run Code Online (Sandbox Code Playgroud)
该机制适用于我使用相同类的另一个上下文.
此外,我意识到如果我在ICollectionViews的CollectionChanged事件上注册监听器,问题就会消失.我确保从GUI线程创建和修改它们并怀疑垃圾收集是问题所在,但目前我被卡住了......想法?
更新:
在调试时我意识到在我调用ShowDialog()托管UserControl的WinForms表单之前,SourceCollections仍然存在.显示对话框后,它们就消失了.
我像这样创建ICollectionViews:
AvailableTags = new CollectionViewSource { Source = _tags }.View;
AssignedTags = new CollectionViewSource { Source = _tags }.View;
Run Code Online (Sandbox Code Playgroud)
这是我如何绑定其中一个(另一个非常相似):
<ListBox Grid.Column="0" ItemsSource="{Binding AvailableTags}" Style="{StaticResource ListBoxStyle}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Style="{StaticResource ListBoxItemBorderStyle}">
<DockPanel>
<Button DockPanel.Dock="Right" ToolTip="Assign" Style="{StaticResource IconButtonStyle}"
Command="{Binding Path=DataContext.AssignSelectedTagCommand, …Run Code Online (Sandbox Code Playgroud) 从EC2集群实例迁移到AWS Fargate之后,我意识到部署需要花费更长的时间。在他们花1-2分钟之前,现在一些破烂需要5分钟。这篇文章声称他们在Fargate上的部署甚至可能需要10分钟。
有人知道一种加快速度的方法吗?我找不到有关此主题的任何文档。
我对将文档放入Kinesis流中的AWS文档有些困惑:https : //docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html#API_PutRecord_RequestSyntax
它说sequenceNumberForOrdering应该使用设置来保证“从同一客户端到同一分区键的订单”的顺序。
此页面底部的示例让我感到困惑:
sequenceNumberOfPreviousRecord在该示例中,变量的初始值应该是什么
?"0"?也许我只是听不懂,但是我认为文档可以更好地解释这一点。
我正在订阅valueChangesAngular 2(2.2.1)控件的可观察量.它AbstractControl在@angular\forms\src\model.d.ts中定义,并且它的文档字符串表明它将从UI以及程序化的更改:
/**
* Emits an event every time the value of the control changes, in
* the UI or programmatically.
*/
valueChanges: Observable<any>;
Run Code Online (Sandbox Code Playgroud)
如何对其进行过滤以仅向我提供UI的更改,而不是程序化的更改?
我认为布尔道具(原始的,脏的,触摸的等)对我没有帮助,因为即使控件被标记为脏 - 表示我想要捕获的UI的变化 - 可能还有进一步的程序化变化,我想忽略.
我使用AmazonS3Client1.11.66版中适用于Java的AWS开发工具包中的来检查S3中密钥的存在:
s3client.doesObjectExist(bucketName, key);
Run Code Online (Sandbox Code Playgroud)
如果我给它一个现有的键名,它会正确返回true。对于不存在的密钥,我总是会AmazonS3Exception通知我有关API返回的403的信息。
我要更改什么才能使其返回false?
该服务的IAM策略如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::MY_BUCKET/*"
}
]
}
Run Code Online (Sandbox Code Playgroud) java ×3
amazon-ecs ×2
amazon-s3 ×2
angular ×2
aws-lambda ×2
aws-sdk ×2
amazon-ec2 ×1
amazon-sqs ×1
ansible ×1
aws-fargate ×1
c# ×1
centos ×1
inputstream ×1
jwt ×1
outputstream ×1
rxjs ×1
typescript ×1
validation ×1
wpf ×1