小编Sir*_*lot的帖子

AWS Lambda RDS连接超时

我正在尝试使用连接到我的RDS数据库的Node.js编写Lambda函数.数据库正在运行,可从我的Elastic Beanstalk环境访问.当我运行该函数时,它返回一个超时错误.

尝试使用完全相同的结果将超时增加到5分钟.

我在经过一些研究后得出的结论是,这可能是一个安全问题,但无法在亚马逊的文档或这个答案中找到解决方案(这是我唯一可以找到的主题).

以下是安全细节:

  • RDS和Lambda都在同一个安全组中.
  • RDS具有所有流量入站和出站规则.
  • Lambda的角色是AmazonVPCFullAccess策略.

我的代码是:

'use strict';
console.log("Loading getContacts function");

var AWS = require('aws-sdk');
var mysql = require('mysql');

exports.handler = (event, context, callback) => {

   var connection = mysql.createConnection({
        host     : '...',
        user     : '...',
        password : '...',
        port     : 3306,
        database: 'ebdb',
        debug    :  false
    });

    connection.connect(function(err) {
      if (err) callback(null, 'error ' +err);
      else callback(null, 'Success');
    });

};
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

"errorMessage": "2017-03-05T05:57:46.851Z 9ae64c49-0168-11e7-b49a-a1e77ae6f56c Task timed out after 10.00 seconds"
Run Code Online (Sandbox Code Playgroud)

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

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

无法解析项目:Android库和Java库模块依赖项

我正在尝试在Android Studio(3.1)中创建一个包含Android库和Java库的项目.Java库依赖于Android库.这两个都是我项目中的模块,如下所示:

MyProject    
|-android
|-java
Run Code Online (Sandbox Code Playgroud)

两者都出现在settings.gradle中:

include ':android', ':java'
Run Code Online (Sandbox Code Playgroud)

Java库依赖于Android库,如下所示:

java(build.gradle):

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':android')
}
...
Run Code Online (Sandbox Code Playgroud)

android(build.gradle):

apply plugin: 'com.android.library'
...
Run Code Online (Sandbox Code Playgroud)

尝试同步项目时,我收到以下错误:

无法解决:project :: android

为什么?

PS反过来(Android依赖于Java)工作得很好.

java android gradle android-library android-gradle-plugin

15
推荐指数
1
解决办法
3362
查看次数

在 Ktor 中,如何将 InputStream 流式传输到 HttpClient 请求的主体中?

我正在使用Ktor 1.2.2,并且有一个 InputStream 对象,我想将其用作我接下来发出的 HttpClient 请求的主体。直到 Ktor 0.95 为止,这个InputStreamContent对象似乎就是这样做的,但它已在版本 1.0.0 中从 Ktor 中删除(遗憾的是无法弄清楚原因)。

我可以使用 ByteArrayContent 使其工作(请参见下面的代码),但我宁愿找到一个不需要将整个 InputStream 加载到内存中的解决方案......

ByteArrayContent(input.readAllBytes())
Run Code Online (Sandbox Code Playgroud)

此代码是一个简单的测试用例,模拟我想要实现的目标:

val file = File("c:\\tmp\\foo.pdf")
val inputStream = file.inputStream()
val client = HttpClient(CIO)
client.call(url) {
      method = HttpMethod.Post
      body = inputStream // TODO: Make this work :(
    }
// [... other code that uses the response below]
Run Code Online (Sandbox Code Playgroud)

如果我遗漏了任何相关信息,请告诉我,

谢谢!

kotlin ktor ktor-client

8
推荐指数
2
解决办法
6331
查看次数

Android 库 proguard 包混淆产生 aaaaa 冲突

我正在编写 2 个 Android 库。当我对两者进行混淆时,它们中的混淆代码都包含一个名为 的类a.a.a.a.a,当尝试在同一应用程序中使用这两个库时,该类会导致以下错误:

在模块classes.jar (lib1) 和classes.jar (lib2) 中发现重复的类aaaaa

我怎样才能防止Proguard混淆前 3 个包而最终得到:

my.domain.lib1.a.amy.domain.lib2.a.a

编辑:混淆是在构建库的过程中发生的,而不是在构建应用程序时发生的。

android proguard android-library

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

如何在不使用 Gradle 复制 jar 的情况下将一个模块的源包含在另一个模块中?

我想将一个 Android 库项目拆分为模块。预期的项目结构是:

?? androidLibraryModule
?
?? kotlinLibraryModuleA
?
?? kotlinLibraryModuleB
Run Code Online (Sandbox Code Playgroud)

哪里androidLibraryModule取决于kotlinLibraryModuleAkotlinLibraryModuleB

dependencies {
    implementation project(":kotlinLibraryModuleA")
    implementation project(":kotlinLibraryModuleB")
}
Run Code Online (Sandbox Code Playgroud)

我将发布的唯一.aar内容是构建的结果,androidLibraryModule我希望它包含来自kotlinLibraryModuleA和的代码kotlinLibraryModuleA。到目前为止,我已经找到了实现这一目标的唯一途径是通过复制.jar的文件kotlinLibraryModuleA,并kotlinLibraryModuleBlibs的文件夹androidLibraryModule是这样的:

task copyJar(type: Copy) {
    from jar
    into "${project(":androidLibraryModule").projectDir.absolutePath}/libs"
}

jar.finalizedBy(copyJar)
Run Code Online (Sandbox Code Playgroud)

这个解决方案有效,但感觉有点像黑客。这是唯一的解决方案还是有更好的方法来实现这一结果?

编辑:如果androidLibraryModule是 Android 应用程序模块,则无需复制任务即可工作。

android project-structure gradle android-library kotlin

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

Android Studio 在代码编辑器中显示一个弹出窗口。我怎样才能摆脱它?

我正在使用Android Studio Arctic Fox Preview,它开始在编辑器中向我显示这些弹出窗口,显示当前不在我视野中的代码。我在任何地方都找不到此功能的名称。它是如何命名的,我该如何让它消失?

在此处输入图片说明

android-studio

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

Dagger 2 公共字段注入产生“私有字段注入”错误

我正在尝试使用Dagger2以下结构设置一个非常基本的字段注入:

class ToInject {}
Run Code Online (Sandbox Code Playgroud)
class Injected {
    @Inject
    var toInject: ToInject? = null
}
Run Code Online (Sandbox Code Playgroud)
@Module
object BaseModule {

    var toInject: ToInject? = null

    @Provides
    @JvmStatic
    fun toInjectProvider(): ToInject {
        if (toInject == null) {
            toInject = ToInject()
        }

        return toInject as ToInject

    }
}
Run Code Online (Sandbox Code Playgroud)

我试图注入的字段肯定是PUBLIC但编译器返回以下错误

Dagger 不支持注入私有字段

任何人都可以解释为什么我会收到此错误以及如何解决它?

BTW 构造函数注入工作:

class Injected @Inject constructor(var toInject: ToInject){}
Run Code Online (Sandbox Code Playgroud)

kotlin dagger-2

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