小编cos*_*r11的帖子

我何时在RESTful API中使用路径参数与查询参数?

我想让我的RESTful API非常可预测.决定何时使用URI而不是使用查询参数来分段数据的最佳做法是什么.

对我来说,支持分页,排序和分组的系统参数在'?'之后是有道理的.但是如果像'status'和'region'这样的字段或其他属性来分割你的收藏呢?如果那些也是查询参数,那么知道何时使用路径参数的经验法则是什么?

rest api-design spring-mvc restful-url restful-architecture

98
推荐指数
6
解决办法
6万
查看次数

运行任务时出现AWS ECS错误:在群集中未找到任何容器实例

我试图将docker容器映像部署到AWS使用ECS,但是没有创建EC2实例.我已经浏览了互联网,寻找解释为什么我收到以下错误:

"调用RunTask操作时发生客户端错误(InvalidParameterException):在群集中找不到容器实例."

这是我的步骤:

1.将Docker镜像从Ubuntu推送到我的Amazon ECS仓库.

2.注册ECS任务定义:

aws ecs register-task-definition --cli-input-json file://path/to/my-task.json 
Run Code Online (Sandbox Code Playgroud)

3.完成任务:

aws ecs run-task --task-definition my-task
Run Code Online (Sandbox Code Playgroud)

然而,它失败了.

这是我的任务:

{
  "family": "my-task",
  "containerDefinitions": [
    {
        "environment": [],
        "name": "my-container",
        "image": "my-namespace/my-image",
        "cpu": 10,
        "memory": 500,
        "portMappings": [
            {
                "containerPort": 8080,
                "hostPort": 80
            }
        ],
        "entryPoint": [
            "java",
            "-jar",
            "my-jar.jar"
        ],
        "essential": true
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我也尝试使用管理控制台来配置集群和服务,但我得到了同样的错误.如何配置群集以具有ec2实例,以及需要使用哪种容器实例?我认为整个过程是创建EC2实例开始!!

amazon-web-services amazon-ecs docker aws-cli

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

如何使用AWS API Gateway设置OAuth2身份验证提供程序?

AWS有一个API网关,可以很容易地设置,管理和监控您的API.但是,您可以为资源方法设置的安全授权设置仅限于AWS-IAM(根据我的理解,这是一个内部vpn角色?).

看来,我对这个问题的研究已经指向我建立一个AWS Cognito池,但是当我去配置一个在我的AWS控制台,对供应商的选择是:Amazon,Facebook,Google+,Twitter,OpenID,和Custom.我想,在那种情况下,我会用Custom?然后将我自己的EC2实例设置为OAuth2身份验证提供程序服务器.

鉴于Oauth2如今如此受欢迎,令我惊讶的是,没有AWS服务.看起来他们已经走了整个OpenId或SAML路线.令我惊讶的是,缺乏有关如何在云中快速设置Oauth2提供程序的指南.

任何帮助,将不胜感激.

amazon-s3 amazon-ec2 amazon-web-services oauth-2.0

46
推荐指数
2
解决办法
5万
查看次数

Spring Data JPARepository:如何有条件地获取子项

除非提供某个执行参数,否则如何配置其JPA实体不获取相关实体.

根据Spring的文档,4.3.9.配置Fetch-和LoadGraphs,您需要使用@EntityGraph注释来指定查询的获取策略,但是这不允许我在运行时决定是否要加载这些实体.

我可以将子实体放在单独的查询中,但为了做到这一点,我需要配置我的存储库或实体以不检索任何子节点.不幸的是,我似乎找不到任何关于如何做到这一点的策略.FetchPolicy被忽略,EntityGraph仅在指定我想要急切检索的实体时才有用.

例如,假设Account是父项并且Contact是子项,而帐户可以包含多个联系项.

我希望能够这样做:

if(fetchPolicy.contains("contacts")){
  account.setContacts(contactRepository.findByAccountId(account.getAccountId());
}
Run Code Online (Sandbox Code Playgroud)

问题是spring-data无论如何急切地获取联系人.

Account Entity类如下所示:

@Entity
@Table(name = "accounts")
public class Account
{
    protected String accountId;
    protected Collection<Contact> contacts;

    @OneToMany
    //@OneToMany(fetch=FetchType.LAZY) --> doesn't work, Spring Repositories ignore this
    @JoinColumn(name="account_id", referencedColumnName="account_id")
    public Collection<Contact> getContacts()
    {
        return contacts;
    }

    //getters & setters

}
Run Code Online (Sandbox Code Playgroud)

AccountRepository类如下所示:

public interface AccountRepository extends JpaRepository<Account, String>
{
    //@EntityGraph ... <-- has type= LOAD or FETCH, but neither can help me …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-mvc

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

AWS Athena:通过数组的结构的属性进行查询

我使用 awsglue 爬取数据,从 s3 文件夹导入 json 数据,该文件夹包含根大括号是如下数组的数据:

[{id: '1', name: 'rick'},{id: '2', name: 'morty'}]
Run Code Online (Sandbox Code Playgroud)

这最终会产生这样的模式:

array<struct<expand:string,id:string,name:string>>
Run Code Online (Sandbox Code Playgroud)

如何name在 Athena 中查询?

如果我尝试这个:

SELECT * FROM people_s3_buckets WHERE name = "rick";
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SYNTAX_ERROR: Column 'name' cannot be resolved
Run Code Online (Sandbox Code Playgroud)

也许,有一种方法可以设置 Glue 爬虫以仅添加数组中的元素并避免完全嵌套?

amazon-web-services amazon-athena aws-glue-data-catalog

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

html文件中的Thymeleaf命名空间在Netbeans中显示错误 - 如何通过HTML检查?

Netbeans HTML检查不喜欢我的百万美元命名空间.

这是我的HTML Thymleaf文件:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="head">
    <object th:include="fragments/meta :: meta" th:remove="tag" />

    <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700|Open+Sans:300italic,400,300,700' rel='stylesheet' type='text/css'/>

    <link href="/../../../webjars/Semantic-UI/2.0.6/semantic.min.css" rel="stylesheet" th:href="@{/webjars/Semantic-UI/2.0.6/semantic.min.css}"/> 
    <link href="../../../css/core.css" rel="stylesheet" th:href="@{/css/core.css}" />
    <link href="../../../css/product.css" rel="stylesheet" th:href="@{/css/product.css}" />

    </head>
<body>

</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

这是Netbeans中显示的错误:

在此输入图像描述

我怎样才能让Netbeans与Thymeleaf一起玩得很好?

html java netbeans thymeleaf

7
推荐指数
1
解决办法
3974
查看次数

AWS:从 Lambda 向 SQS 队列发送消息时没有可用消息

以下内容对我不起作用的一些可能原因是什么?

  1. 创建一个card_auth_events至少包含一个id字段的 DynamoDB 表。
  2. 创建一个调用 lambda 的触发器。这是拉姆达:
 console.log('Loading publishCardAuthEvent...');

 var QUEUE_URL = 'https://sqs.us-west2.amazonaws.com/XXXXXXXXXXXX/CardAuthEvents';
 var AWS = require('aws-sdk');
 var sqs = new AWS.SQS({region : 'us-west-2'});
 var http = require('https');

 exports.handler = function(event, context) {
 event.Records.forEach(function(record) {
      console.log(record.eventID);
      console.log(record.eventName);
      console.log('DynamoDB Record: %j', record.dynamodb);
      sendToQueue(record);
 });
 context.succeed("Successfully processed " + event.Records.length + " records.");
};

function sendToQueue(message){
//Send SQS message with details of file uploaded to S3.
var params = {
  MessageBody: JSON.stringify(event),
  QueueUrl: QUEUE_URL
};

sqs.sendMessage(params, function(err,data){
  if …
Run Code Online (Sandbox Code Playgroud)

amazon-sqs amazon-web-services node.js aws-lambda

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

如何在AWSCLI查询中使用CLI变量

如何在AWS查询中使用变量?

似乎没有关于查询语法的文档,仅是示例。

我正在尝试执行以下操作:

API_ID=$(aws apigateway get-rest-apis --query 'items[?name == `${API_NAME}`] | [0].{id: id}' --output text)
Run Code Online (Sandbox Code Playgroud)

问题在于$ {API_NAME}是按字面读取的。有任何想法吗?

bash aws-cli

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

气流 Schedule_interval 和 start_date 使其始终触发下一个间隔

如何配置气流 (mwaa),以便它在部署 dag 时每天同一时间(太平洋标准时间上午 6 点)触发?

我尝试过对我来说有意义的事情:

  1. 将 Schedule_interval 设置为0 6 * * *
  2. 将开始日期设置为:
now = datetime.utcnow()
now = now.replace(tzinfo=pendulum.timezone('America/Los_Angeles'))
previous_five_am = now.replace(hour = 5, minute = 0, second = 0, microsecond = 0)
start_date = previous_five_am
Run Code Online (Sandbox Code Playgroud)

似乎每当我通过将 start_date 设置为前一天上午 5 点进行部署时,无论我何时部署 dag 或进行气流更新,它总是会在接下来的早上 6 点触发

cron airflow mwaa

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

当客户向您提供他们的公共证书时进行相互身份验证

通常,2 路 ssl 又名相互身份验证包括生成服务器 ca 密钥和证书等。然后客户端生成一个 CSR,将其提供给您,您签署他们的 CSR 并向他们提供客户端证书。

然而,

我遇到过一种情况,客户要求我通过交换彼此的 x509 公共证书来实现“相互身份验证”。这个听说过吗?也许称为“2 路 SSL”或“相互身份验证”以外的名称。

我正在努力寻找与 openssl 有关的任何文档或信息。

openssl ssl-certificate mutual-authentication

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