小编Chr*_*rno的帖子

如何从AWS lambda发布到Node.js中的云监视度量标准

在lambda中,我用来定期检查服务,我检查服务器的结果值,并希望将发布到AWS Cloudwatch的值作为度量标准来形成线图.

我不能为我的生活想象我们如何做到这一点.围绕AWS文档进行2小时的梳理无处可去.这甚至可能吗?

要明确这不是关于lambda的度量标准,它是从lamdba发布的度量标准.

码:

'use strict';

const https = require('http');


exports.handler = (event, context, callback) => {
  const now = new Date()
  const yesterday = new Date(now.toISOString())
  yesterday.setTime(now.getTime()  - (1000 * 60 * 60 * 24)); // 1 day ago)

  const params = [
    ['limit',0],
    ['pageStart',0],
    ['startsOnOrAfter',encodeURIComponent(yesterday.toISOString())],
    ['startsOnOrBefore',encodeURIComponent(now.toISOString())]
  ].map(kv => `${kv[0]}=${kv[1]}&`).reduce((s1,s2) => s1.concat(s2))

  var uri = `http://service/query?${params}`
  const req = https.request(uri, (res) => {
    let body = '';
    res.setEncoding('utf8');
    res.on('data', (chunk) => body += chunk);
    res.on('end', …
Run Code Online (Sandbox Code Playgroud)

lambda amazon-web-services node.js

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

9
推荐指数
2
解决办法
5404
查看次数

不能Marshal java.lang.String

这是我的困境:

我有一个dto类,用于从/向XML来回编组.

这是诀窍:由于我们的项目处理的dto类的数量是具有复数outter标记的集合,我决定创建一个委托集合,允许我从其中一个类中轻松地将它们转换为Collection并获取随之而来的便利(迭代,添加等).

在我们的项目中,我们有编组测试来清除注释错误等.以下是我的故障代码.

问题:根据封送程序,如果我扩展此QuickCollection,我会收到以下错误.当使用CXF将对象解组为x​​ml作为对Web服务请求的响应时,它将失败.确切错误:com.sun.istack.SAXException2:无法封装类型"java.lang.String"作为元素,因为它缺少@XmlRootElement注释

当它在测试中用JAXB进行编组/解组时它很好.当使用相同的QuickCollection来编组第三方使用spring RestOperations的结果并且工作正常

心灵螺丝:当我删除继承并将集合作为私人成员管理时,一切正常!

这对我来说不是一种感觉,因为我在两种情况下都会返回确切的数据类型.

以下是所有相关代码.

这是Inherited委托类.

    public class QuickCollection<T> implements Collection<T> {
    // to be set if needed after instantiation. To behave like a normal collection, we set it to something safe
    protected Collection<T> delegate = Collections.emptySet();

    public QuickCollection() {
    }

    public QuickCollection(Collection<T> delegate) {
        this.delegate = delegate;
    }

    @Override
    public int size() {
        return delegate.size();
    }

    @Override
    public boolean isEmpty() {
        return delegate.isEmpty();
    }

    @Override
    public boolean contains(Object o) {
        return delegate.contains(o);
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

java xml cxf marshalling unmarshalling

6
推荐指数
1
解决办法
2040
查看次数

REST 的资源和操作 URI 约定

我正处于开发一些 REST API 的十字路口,我发现没有关于这个主题的真正讨论,更不用说对两者的坚定辩护了。

据我了解,使用 REST,您可以将其/<resource>/<action>作为 URL

因此,要禁用用户,您将拥有:

PUT /user/disable
Run Code Online (Sandbox Code Playgroud)

似乎有道理。但是,我们正在讨论更基本的方法:

应该是:

POST /user  (creates a user *implicitly*)
POST /user/create (creates a user *explicitly*)

DELETE /user/:id
DELETE /user/:id/delete
Run Code Online (Sandbox Code Playgroud)

第一个似乎被认为是“标准”,第二个在意图上显然要明确得多,并且与 /user/disable 等方法一致

也许这场辩论在其他地方已经很激烈了,但我还没有看到。如果您对此有“宗教信仰”,那么现在是您发表意见的机会

rest http

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

Java 8通用函数映射

不确定这是否可能; 我承认我并不像我希望的那样擅长仿制药.

基本上,我想创建一个类 - >函数的映射,其中用于键的类是函数输入的类,就像这样(不合法的语法):

public static Map<Class<T>,Function<T,Expression>> STUFF = new HashMap<>();

{
    STUFF.put(List.class, ListExpression::new);
    STUFF.put(String.class, StringExpression::new);// this constructor must take string
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

Function<String,Expression> e = STUFF.get(o.getClass());
Expression ex = e.apply(o);
Run Code Online (Sandbox Code Playgroud)

它适合我的类型.

java generics java-8

6
推荐指数
1
解决办法
3390
查看次数

Docker容器发送空响应

希望有人可以告诉我我错过了什么?这是一个使用webrick的ruby应用程序,我试图将应用程序容器化.在Mac OSX 10.12.3 Sierra上运行.这是我的Dockerfile

FROM ruby:2.4.0-alpine
RUN apk add --no-cache gcc musl-dev libstdc++ g++ make
RUN gem install jekyll bundler redcarpet
RUN mkdir -p /usr/app/jekyll
COPY . /usr/app/jekyll
WORKDIR /usr/app/jekyll
EXPOSE 4000:4000
CMD ["jekyll", "serve"]
Run Code Online (Sandbox Code Playgroud)

以下是图像的构建方式

docker build -t chb0docker/cheat .
Run Code Online (Sandbox Code Playgroud)

如果我直接在主机上运行服务,它运行正常

Violas-MacBook-Pro:progfun-wiki cbongiorno$ jekyll serve &
[1] 49286
Violas-MacBook-Pro:progfun-wiki cbongiorno$ Configuration file: /Users/cbongiorno/development/progfun-wiki/_config.yml
Configuration file: /Users/cbongiorno/development/progfun-wiki/_config.yml
            Source: /Users/cbongiorno/development/progfun-wiki
       Destination: /Users/cbongiorno/development/progfun-wiki/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
                    done in 0.409 seconds.
 Auto-regeneration: enabled for '/Users/cbongiorno/development/progfun-wiki'
Configuration file: /Users/cbongiorno/development/progfun-wiki/_config.yml
    Server …
Run Code Online (Sandbox Code Playgroud)

ruby webrick jekyll docker

6
推荐指数
1
解决办法
3341
查看次数

Chocolatey 在本地安装,但不在 docker 构建中安装(但上周安装了) - 为什么?

我正在尝试使用 Chocolatey 将软件包安装到 Windows 容器中。我实际上只是想更改其中一个包,重建并推送,但现在突然间它不起作用了。当我在主机上测试它时(运行与容器相同的命令),它工作得很好。自上次构建以来,该容器安装存在某种问题。我只能怀疑基本图像已更改。但是,也许不是

在主机上:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
                           Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Getting latest version of the Chocolatey package for download.
Getting Chocolatey from https://chocolatey.org/api/v2/package/chocolatey/0.10.15.
Downloading 7-Zip commandline tool prior to extraction.
Extracting C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip to C:\Users\ADMINI~1\AppData\Local\Temp\chocolatey\chocInstall...
Installing chocolatey on this machine
Creating ChocolateyInstall as an environment variable (targeting 'Machine')
  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen …
Run Code Online (Sandbox Code Playgroud)

windows chocolatey docker

6
推荐指数
1
解决办法
2313
查看次数

Flyway MySQL语法错误

我们使用 Flyway 1 个月以来没有遇到任何问题。

但是,今天我尝试添加一个非常长(超过1500行)的新迁移脚本,并遇到了一个奇怪的MySQL语法错误。

我在 MySQL Workbench 中打开这个脚本,没有报告语法错误,脚本执行没有错误。

这个名为“V10012__insert-acceptance-testing-event-moment-passed.sql”的脚本包含以下说明。

  • 插入语句1
  • 插入语句2
  • ...
  • INSERT 语句最后 - 1
  • 最后插入语句

MySQL报告的错误如下:

[错误] 由 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 引起:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 232 行的 'INSERT INTO video_feedback (id, youtube_video_id) VALUES ( 1102, /* id */' at line 232 [ERROR] com.googlecode.flyway.core. migration.MigrationException:迁移到版本 10012 失败!请恢复备份并回滚数据库和代码!

该错误是在“INSERT statements LAST”语句上报告的。

但是,如果我在脚本中反转“INSERT 语句 LAST”和“INSERT 语句 LAST - 1”,则会在“INSERT 语句 LAST - 1”(现在位于文件末尾)上报告错误。所以我在“INSERT statements LAST”中没有错误,因为 Flyway 成功执行了它。

另外,如果现在我从脚本“V10012_ insert-acceptance-testing-event-moment-passed.sql”中完全删除“INSERT statements LAST”语句,并将该语句放入名为“V10013 _test.sql”的新文件中,flyway 会执行我所有的迁移脚本都成功了!

那么,我最初的“V10012__insert-acceptance-testing-event-moment-passed.sql”脚本中可能存在什么问题?

是否存在脚本大小限制?

以下是有关我的环境的有用信息:

  • 我的脚本使用了大量 /* */ 注释
  • Flyway …

mysql jdbc flyway

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

科特林委托未来

我正在努力学习Kotlin,代表们既有趣又令人困惑.我有一种情况,在java类中,我将采用构造函数arg,创建一个Future(ID表示另一个系统中的资源)并将Future存储为instange变量.然后"getXXX"会调用Future.get()

这是一个示例java类

public class Example {


     private Future<Foo> foo;

     public Example(String fooId) {

        this.foo = supplyAsync(() -> httpClient.get(fooId));
     }

     public Foo getFoo() {
      return foo.get();
     }
}
Run Code Online (Sandbox Code Playgroud)

我没有提供Kotlin示例,因为我根本不确定如何构建它.

java kotlin

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

Kotlin编译器抱怨在属性定义中使用SPeL表达式.为什么?

当我尝试使用SPeL表达式来注入一个值时,它可以在Java中运行,但不能在Kotlin中运行.编译说

错误:(13,25)Kotlin:注释参数必须是编译时常量

码:

@SpringBootApplication
open class DeDup(@Value("#{new java.io.File('${roots}')}") val roots: Set<File>,
                 @Value("algo") val hashAlgo: String,
                 @Value("types")val fileTypes: List<String>) {

}

fun main(args: Array<String>) {
 SpringApplication.run(DeDup::class.java, *args)
}
Run Code Online (Sandbox Code Playgroud)

嗯...新闻快报Kotlin编译器:它是一个常数!编译器清楚地知道它是一个SPeL表达式并且不喜欢它.

我的问题:

  1. 为什么Kotlin不喜欢SPeL?这是施工注塑(或是它)并且不违反不变性.

  2. 这是编译器错误吗?这条消息是无可辩驳的错误.

spring spring-el kotlin spring-boot

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