小编Eag*_*eak的帖子

从Angular 2 FormGroup获取所有验证错误

鉴于此代码:

this.form = this.formBuilder.group({
      email: ['', [Validators.required, EmailValidator.isValid]],
      hasAcceptedTerms: [false, Validators.pattern('true')]
    });
Run Code Online (Sandbox Code Playgroud)

如何从中获取所有验证错误this.form

我正在编写单元测试,并希望在断言消息中包含实际的验证错误.

validation typescript angular

61
推荐指数
5
解决办法
7万
查看次数

如何在API后端验证来自AWS Cognito的JWT?

我正在构建一个由Angular2单页面应用程序和在ECS上运行的REST API组成的系统.API在.Net/Nancy上运行,但这可能会发生变化.

我想尝试一下Cognito,这就是我想象的身份验证工作流程:

  1. SPA登录用户并收到JWT
  2. SPA会在每次请求时将JWT发送到REST API
  3. REST API验证JWT是否可信

我的问题是关于第3步.我的服务器(或者更确切地说:我的无状态,自动扩展,负载平衡的Docker容器)如何验证令牌是否可信?由于"服务器"还没有出台的智威汤逊本身,它不能使用自己的秘密(如在基本JWT例如描述这里).

我已经阅读了Cognito文档并搜索过很多内容,但是我找不到任何关于如何在服务器端使用JWT的好指南.

authentication amazon-ec2 amazon-ecs jwt amazon-cognito

60
推荐指数
7
解决办法
3万
查看次数

检查Ansible是否存在服务

我有一个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)

centos ansible ansible-playbook

35
推荐指数
4
解决办法
5万
查看次数

AWS Lambda调用错误未触发SQS死信队列

我有一个AWS Lambda函数,它订阅DynamoDB流并配置了SQS死信队列(DLQ).我可以看到在管理控制台中配置了正确的队列.我也小心翼翼地sqs:SendMessage在我的DLQ上赋予我的功能权限.

订阅有效,但仍然"挂起"调用错误,就像没有配置DLQ一样.即,如果有消息导致未处理的异常,则该函数继续重试此消息,直到它从流中删除.我可以看到调用错误的数量增加,并且函数的Cloudwatch仪表板中没有显示DLQ错误.SQS队列保持为空.

我想要的是失败的消息转发到我的DLQ并且订阅继续到下一条消息.有任何想法吗?

编辑

正如Jonathan Seed在下面所说,DLQ目前不适用于基于流的订阅.AWS Support确认他们正在努力实现这一点.

amazon-sqs amazon-web-services amazon-dynamodb aws-lambda

11
推荐指数
2
解决办法
2184
查看次数

DynamoDB流如何将记录分发到分片?

我的目标是确保DynamoDB流发布的记录以"正确"的顺序处理.我的表包含客户的事件.哈希键是事件ID,范围键是时间戳."正确"订单意味着按顺序处理同一客户ID的事件.可以并行处理不同的客户ID.

我正在通过Lambda函数使用流.每个碎片自动生成消费者.因此,如果运行时决定对流进行分片,则消耗并行发生(如果我做对了)并且我冒着在CustomerCreated之前处理CustomerAddressChanged事件的风险(例如).

文档暗示,有没有办法能够影响分片.但他们并没有这么明确地说.有没有办法,例如,通过使用客户ID和时间戳组合范围键?

amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams

10
推荐指数
2
解决办法
6085
查看次数

如何将Java OutputStream上载到AWS S3

我在内存中创建PDF文档作为OutputStreams.这些应该上传到S3.我的问题是,它无法创建一个PutObjectRequestOutputStream(直接按这个线程在AWS开发论坛).我aws-java-sdk-s3Dropwizard应用程序中使用v1.10.8 .

到目前为止我能看到的两个解决方法是:

  1. 复制OutputStream到a InputStream并接受使用两倍量的RAM.
  2. 管道OutputStream到一个InputStream并接受额外线程的开销(参见这个答案)

如果我找不到更好的解决方案,我会选择#1,因为在我的设置中,它看起来好像能够比线程/ CPU更容易买得起额外的内存.

到目前为止,我是否还有其他任何可能更有效的方式来实现这一目标?

编辑:OutputStreams为ByteArrayOutputStream小号

java inputstream outputstream amazon-s3 amazon-web-services

9
推荐指数
1
解决办法
7334
查看次数

ICollectionView的SourceCollection为null

我有一个带有两个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)

c# wpf

6
推荐指数
2
解决办法
1724
查看次数

如何加快AWS Fargate的部署?

从EC2集群实例迁移到AWS Fargate之后,我意识到部署需要花费更长的时间。在他们花1-2分钟之前,现在一些破烂需要5分钟。这篇文章声称他们在Fargate上的部署甚至可能需要10分钟。

有人知道一种加快速度的方法吗?我找不到有关此主题的任何文档。

amazon-web-services amazon-ecs aws-fargate

6
推荐指数
2
解决办法
2124
查看次数

使用Java SDK将记录放入Kinesis流时,sequenceNumberForOrdering到底能做什么?

我对将文档放入Kinesis流中的AWS文档有些困惑:https : //docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html#API_PutRecord_RequestSyntax

它说sequenceNumberForOrdering应该使用设置来保证“从同一客户端到同一分区键的订单”的顺序。

此页面底部的示例让我感到困惑:

  1. sequenceNumberOfPreviousRecord在该示例中,变量的初始值应该是什么 ?"0"
  2. 为什么以前的记录放在哪个分区键似乎无关紧要?(示例中的循环放置两个不同分区键0和1的记录。)

也许我只是听不懂,但是我认为文档可以更好地解释这一点。

java amazon-web-services amazon-kinesis aws-sdk

5
推荐指数
1
解决办法
567
查看次数

跳过Angular 2控件的valueChanges中的程序化更改

我正在订阅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的变化 - 可能还有进一步的程序化变化,我想忽略.

rxjs angular2-forms angular

4
推荐指数
1
解决办法
2113
查看次数

检查不存在的S3密钥时,AWS开发工具包将引发403,但对于现有密钥,则返回true

我使用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 amazon-s3 amazon-web-services aws-sdk

3
推荐指数
1
解决办法
312
查看次数