我想让我的RESTful API非常可预测.决定何时使用URI而不是使用查询参数来分段数据的最佳做法是什么.
对我来说,支持分页,排序和分组的系统参数在'?'之后是有道理的.但是如果像'status'和'region'这样的字段或其他属性来分割你的收藏呢?如果那些也是查询参数,那么知道何时使用路径参数的经验法则是什么?
我试图将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实例开始!!
AWS有一个API网关,可以很容易地设置,管理和监控您的API.但是,您可以为资源方法设置的安全授权设置仅限于AWS-IAM(根据我的理解,这是一个内部vpn角色?).
看来,我对这个问题的研究已经指向我建立一个AWS Cognito池,但是当我去配置一个在我的AWS控制台,对供应商的选择是:Amazon
,Facebook
,Google+
,Twitter
,OpenID
,和Custom
.我想,在那种情况下,我会用Custom
?然后将我自己的EC2实例设置为OAuth2身份验证提供程序服务器.
鉴于Oauth2如今如此受欢迎,令我惊讶的是,没有AWS服务.看起来他们已经走了整个OpenId或SAML路线.令我惊讶的是,缺乏有关如何在云中快速设置Oauth2提供程序的指南.
任何帮助,将不胜感激.
除非提供某个执行参数,否则如何配置其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) 我使用 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 爬虫以仅添加数组中的元素并避免完全嵌套?
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一起玩得很好?
以下内容对我不起作用的一些可能原因是什么?
card_auth_events
至少包含一个id
字段的 DynamoDB 表。 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) 如何在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}是按字面读取的。有任何想法吗?
如何配置气流 (mwaa),以便它在部署 dag 时每天同一时间(太平洋标准时间上午 6 点)触发?
我尝试过对我来说有意义的事情:
0 6 * * *
。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 点触发
通常,2 路 ssl 又名相互身份验证包括生成服务器 ca 密钥和证书等。然后客户端生成一个 CSR,将其提供给您,您签署他们的 CSR 并向他们提供客户端证书。
然而,
我遇到过一种情况,客户要求我通过交换彼此的 x509 公共证书来实现“相互身份验证”。这个听说过吗?也许称为“2 路 SSL”或“相互身份验证”以外的名称。
我正在努力寻找与 openssl 有关的任何文档或信息。
aws-cli ×2
java ×2
spring-mvc ×2
airflow ×1
amazon-ec2 ×1
amazon-ecs ×1
amazon-s3 ×1
amazon-sqs ×1
api-design ×1
aws-lambda ×1
bash ×1
cron ×1
docker ×1
hibernate ×1
html ×1
jpa ×1
mwaa ×1
netbeans ×1
node.js ×1
oauth-2.0 ×1
openssl ×1
rest ×1
restful-url ×1
spring ×1
thymeleaf ×1