我想找到 S3 存储桶中最大文件的大小和名称。
目前我有:
aws s3api list-objects --bucket bucket-name --output json --query "[max(Contents[].Size), length(Contents[])]"
Run Code Online (Sandbox Code Playgroud)
这不允许我看到文件的名称。
我还有一个命令来列出存储桶上所有文件的详细信息:
aws s3api list-object-versions --bucket bucket-name --query 'Versions[*].Size'
Run Code Online (Sandbox Code Playgroud)
什么命令会给我 S3 存储桶上最大文件的名称和大小?
我怎么会发现与 AWS Lambda 一起使用的 KCL 示例如此之少。 https://docs.aws.amazon.com/streams/latest/dev/developing-consumers-with-kcl.html
它确实提供了一个很好的实现来跟踪您在流中的位置(检查点)。
我想使用 KCL 作为消费者。我的设置是一个包含多个分片的流。在每个分片上,一个 Lambda 正在消耗。我想在 Lambda 中使用 KCL 来跟踪迭代器在分片上的位置。
为什么我找不到将 KCL 与 Lambda 结合使用的人。这里有什么问题?
我想用 terraform 部署我的 api 网关,使用 swagger 文件来描述我的 api。swagger.yaml 看起来像这样:
swagger: '2.0'
info:
version: '1.0'
title: "CodingTips"
schemes:
- https
paths:
"/api":
get:
description: "Get coding tips"
produces:
- application/json
x-amazon-apigateway-integration: ${apiIntegration}
responses:
'200':
description: "Codingtips were successfully requested"
Run Code Online (Sandbox Code Playgroud)
Terraform 给了我一个BadRequestException说法The REST API doesn't contain any methods。
因此,我认为它正在尝试部署 REST api,而无需等待创建此 api 的方法和集成。
这让我想到了必须添加DEPENDS_ON到aws_api_gateway_deployment. 但是我不知道该依赖什么,因为我没有使用 swagger 定义方法和集成资源。它们应该从 swagger 定义中自动扣除。
我的思考方向是否正确,如果是,我必须aws_api_gateway_deployment依靠什么?或者我尝试部署这个 api 的方式有什么其他问题。
我的apigateway.tf文件看起来像这样:
resource "aws_api_gateway_rest_api" "codingtips-api-gateway" {
name = "ServerlessExample" …Run Code Online (Sandbox Code Playgroud) 在spring boot 2应用程序中,我正在尝试访问执行器端点/ bean,就像之前在Spring boot 1.5.*应用程序中所做的那样.但我无能为力.此外,我没有看到在log.INFO中创建端点.
我的pom.xml包含:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
在application.properties中我只有关于数据库连接的信息:
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/somedb
spring.datasource.username=someuser
spring.datasource.password=somepass
Run Code Online (Sandbox Code Playgroud)
作为映射的端点,我在信息日志中看到:
/actuator/health
/actuator/info
/actuator
Run Code Online (Sandbox Code Playgroud)
应用程序正在运行但未创建/ application/beans端点.
为什么我的/ beans或/ application/beans端点没有生成,我应该更改它以使其存在?
我想配置一个自定义login命令,在其中我必须进行一个返回承诺的登录调用。
commands.js:
Cypress.Commands.add("login", () => {
AuthLib.signIn(username, password).then((data) => {
cy.setLocalStorage("accessToken", data.accessToken);
});
Run Code Online (Sandbox Code Playgroud)
AuthLib.signIn()返回一个承诺。
然后我想在块中使用这个命令before:
before(() => {
cy.login();
cy.saveLocalStorage();
});
Run Code Online (Sandbox Code Playgroud)
我注意到承诺没有得到解决。一个“hacky”修复方法是在和cy.wait(4000)之间添加。但这使得我的测试取决于身份验证服务器的加载时间login()saveLocalStorage()
我发现了这个“相关”问题:Cypress.io 如何处理异步代码,其中引用了https://www.npmjs.com/package/cypress-promise 。但这个库不能用于before或beforeEach
我如何等待返回的承诺/确保在执行之前解决login()承诺?login()cy.saveLocalStorage()
更新
我添加了哪些有效和无效的示例:https://github.com/Nxtra/Cypress-Amplify-Auth-Example/blob/main/cypress/support/commands.js
解决方案是从以下开始cy.then():
Cypress.Commands.add("login", () => {
cy.then(() => AuthLib.signIn(username, password)).then((data) => {
cy.setLocalStorage("accessToken", data.accessToken);
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过Docker Compose运行Gatsby。据我了解,Gatsby站点正在我的docker容器中运行。
我将容器的端口8000映射到我的本地主机上的端口8000。但是,在浏览时,localhost:8000我无法获得我的盖茨比站点。
我使用以下内容Dockerfile来构建图像docker build -t nxtra/gatsby .:
FROM node:8.12.0-alpine
WORKDIR /project
COPY ./package.json /project/package.json
COPY ./.entrypoint/entrypoint.sh /entrypoint.sh
RUN apk update \
&& apk add bash \
&& chmod +x /entrypoint.sh \
&& npm set progress=false \
&& npm install -g yarn gatsby-cli
EXPOSE 8000
ENTRYPOINT [ "/entrypoint.sh" ]
Run Code Online (Sandbox Code Playgroud)
entrypoints.sh 包含:
#!/bin/bash
yarn install
gatsby develop
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml与 docker-compose up
version: '3.7'
services:
gatsby:
image: nxtra/gatsby
ports:
- "8000:8000"
volumes:
- ./:/project
tty: true
Run Code Online (Sandbox Code Playgroud)
docker …
我想收集流到LinkedHashMap<String, Object>.
我有一个JSON存储的资源LinkedHashMap<String, Object> resources.然后我JSON通过流式传输EntrySet此地图来过滤掉元素.目前我正在收集流的元素到常规HashMap.但在此之后我将其他元素添加到地图中.我希望这些元素处于插入的顺序中.
final List<String> keys = Arrays.asList("status", "createdDate");
Map<String, Object> result = resources.entrySet()
.stream()
.filter(e -> keys.contains(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
result.put("date", "someDate");
return result;
Run Code Online (Sandbox Code Playgroud)
这就是为什么我想收集流到一个LinkedHashMap<String, Object>.我怎样才能做到这一点?
我想为一个函数组合一个函数数组.给定多个函数,该方法应返回一个函数,该函数是输入函数的组合.
一种方法是
public static <T> Function<T,T> composeAll(Function<T,T>... functions){
Function<T,T> res = Function.identity();
for(Function<T,T> f : functions){
res = res.compose(f);
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
我希望通过首先创建函数数组的流来实现相同的结果.但我无法弄清楚如何做到这一点
public static <T> Function<T,T> composeAll2 (Function<T,T>... functions){
Function<T,T> res = Function.identity();
Arrays.stream(functions). ???
return res;
}
Run Code Online (Sandbox Code Playgroud)
我现在应该在最后一个提出问号的方法中输入什么代码?
您可以导入在其他 OpenAPI 文件中定义的组件吗?
假设我有两个 openAPI 文件:
openAPI.yaml和otherOpenAPI.yaml. 我openAPI.yml想使用myItem中定义的组件otherOpenAPI.yaml
我可以做一些类似的事情吗:
$ref: './otherOpenAPI.yaml/components/myItem?
我想格式化结构化日志中的时间戳。目前我定义logback.xml如下:
<configuration>
<appender name="json" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<fieldNames>
<timestamp>timestamp</timestamp>
<logger>[ignore]</logger>
<version>[ignore]</version>
<levelValue>[ignore]</levelValue>
<stackTrace>exception</stackTrace>
</fieldNames>
</encoder>
</appender>
<root name="jsonLogger" level="DEBUG">
<appender-ref ref="json"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
使用<fieldNames>我可以更改时间戳字段的名称。
如何通过配置更改时间戳的模式logback.xml?
java ×4
java-stream ×2
swagger ×2
amazon-s3 ×1
async-await ×1
aws-lambda ×1
cypress ×1
docker ×1
function ×1
gatsby ×1
hashmap ×1
java-8 ×1
javascript ×1
logback ×1
openapi ×1
promise ×1
spring ×1
spring-boot ×1
terraform ×1
testing ×1