小编Prz*_*ach的帖子

Terraform aws_lambda_function 需要 ECR 中的 Docker 映像

我有一个模块,可以创建 lambda 所需的所有基础设施,包括存储图像的 ECR:

resource "aws_ecr_repository" "image_storage" {
  name                 = "${var.project}/${var.environment}/lambda"
  image_tag_mutability = "MUTABLE"

  image_scanning_configuration {
    scan_on_push = true
  }
}

resource "aws_lambda_function" "executable" {
  function_name = var.function_name
  image_uri     = "${aws_ecr_repository.image_storage.repository_url}:latest"
  package_type  = "Image"
  role          = aws_iam_role.lambda.arn
}
Run Code Online (Sandbox Code Playgroud)

当然,这样做的问题是它会失败,因为当 aws_lambda_function 运行时,存储库在那里,但图像不在那里:图像是使用我的 CI/CD 上传的。

所以这是一个先有鸡还是先有蛋的问题。Terraform 应该仅用于基础设施,因此我不能/不应该使用它来上传图像(即使是虚拟图像),但我无法实例化基础设施,除非在存储库和 lambda 创建步骤之间上传图像。

我能想到的唯一解决方案是与 lambda 分开创建 ECR,然后以某种方式将其链接为我的 lambda 中的现有 aws 资源,但这似乎有点笨拙。

有什么建议么?

terraform amazon-ecr

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

错误:无法安装节点的"预"版本,请改用--nodedir标志

我正在尝试为节点安装opencv.我认为这与opencv没有直接关系,而是与node-gyp有关.我成功地在我的mac上安装opencv但是当我尝试在Ubuntu服务器上完全相同时,我在执行'npm install opnecv'后得到以下错误:

npm http GET https://registry.npmjs.org/opencv
npm http 304 https://registry.npmjs.org/opencv

> opencv@0.0.7 preinstall /home/demo/node_modules/opencv
> node-gyp rebuild

gyp ERR! configure error 
gyp ERR! stack Error: "pre" versions of node cannot be installed, use the --nodedir flag instead
gyp ERR! stack     at install (/usr/local/lib/node_modules/node-gyp/lib/install.js:69:16)
gyp ERR! stack     at Object.commands.forEach.self.commands.(anonymous function) [as install] (/usr/local/lib/node_modules/node-gyp/lib/node-gyp.js:56:37)
gyp ERR! stack     at getNodeDir (/usr/local/lib/node_modules/node-gyp/lib/configure.js:181:20)
gyp ERR! stack     at /usr/local/lib/node_modules/node-gyp/lib/configure.js:101:9
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:538:7)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:96:17)
gyp ERR! …
Run Code Online (Sandbox Code Playgroud)

opencv node.js npm

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

使用.aar NoClassDefFoundError但是Class Exists并且是Dexed

我有几个项目,我建立了一个.aar.然后我将这个.aar导入到/ libs下的Android Studio中.此依赖项的build.gradle文件如下所示:

repositories{
    flatDir{
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:7.0.0'
    compile 'com.android.support:multidex:+'
    compile(name: 'customApi-debug', ext:'aar')
}
Run Code Online (Sandbox Code Playgroud)

由于库非常大,我设置了multiDexEnabled = true.Android Studio查找库和自动填充功能.构建工作正常,但运行应用程序会出现以下错误:

java.lang.NoClassDefFoundError: com.companyx.android.api.ui.vision.metaio.MetaIoView
            at com.companyx.android.api.ui.vision.metaio.MetaIoView$$InjectAdapter.<init>(MetaIoView$$InjectAdapter.java:29)
Run Code Online (Sandbox Code Playgroud)

我分别对.aar和dex文件进行了解压缩和反汇编,并验证了它所抱怨的类实际存在.我已经尝试过处理这个问题的现有方法,但没有一个能够工作.

有人经历过这个吗?提前致谢.

android dex android-studio android-gradle-plugin aar

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

Android SDK Manager安装NDK捆绑包的特定版本

我正在尝试安装NDK 15c,但似乎无法弄清楚如何告诉sdkmanager版本。如果我跑步

sdkmanager "ndk-bundle"
Run Code Online (Sandbox Code Playgroud)

我会得到不需要的最新消息。

我尝试了不同的组合,但是没有用:

sdkmanager "ndk-bundle;15c"

sdkmanager "ndk-bundle;15.2.4203891"

sdkmanager "ndk-bundle;15.2"
Run Code Online (Sandbox Code Playgroud)

android android-ndk android-sdk-manager

8
推荐指数
3
解决办法
7584
查看次数

使用Net Socket的NodeJS,OpenCV和流图像

我的最终目标是将视频从笔记本电脑流式传输到服务器.我试图通过在笔记本电脑和服务器上使用NodeJ来实现这一目标.我使用OpenCV库在笔记本电脑上捕获视频并将其保存为jpg文件.然后我读取文件并将其转换为base64,以便我可以使用Node中的Net.socket模块传输它.这是一个持续的过程:捕获,编码和发送.

这是用于传输一个jpg文件的服务器代码:

var cv = require('opencv');
var fs = require('fs');
var net = require('net');
var camera = new cv.VideoCapture(0);
var server = net.createServer();
server.listen('50007', '127.0.0.1');

server.on('connection', function(socket){
    camera.read(function(image){
        image.save('original.jpg');

        fs.readFile('original.jpg', 'base64', function(err, image){
            socket.write(image, 'base64', function(){
                socket.end();
            });
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

在客户端上,我循环直到从服务器收到FIN.这是客户端代码:

var net = require('net');
var fs = require('fs');
var client = new net.Socket();
var buffer ='';
client.setEncoding('base64');

client.connect('50007', '127.0.0.1', function(){
    console.log('Connecting to server...');
});

client.on('data', function(data){
    buffer += data;
});

client.on('end', function(){
    var dataBuffer = new Buffer(buffer, 'base64'); …
Run Code Online (Sandbox Code Playgroud)

sockets base64 opencv video-streaming node.js

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

Apollo GraphQL Lambda 处理程序无法读取未定义的属性“方法”

我正在尝试在我的 AWS lambda 中运行 Apollo GraphQL 服务器。我正在使用这里的图书馆。我还使用 CDK 来部署 lambda 和 REST API 网关。

我的基础设施如下:

const helloFunction = new NodejsFunction(this, 'lambda', {
    entry: path.join(__dirname, "lambda.ts"),
    handler: "handler"
});

new LambdaRestApi(this, 'apigw', {
    handler: helloFunction,
});
Run Code Online (Sandbox Code Playgroud)

lambda 实现如下:

const typeDefs = `#graphql
  type Query {
  hello: String
}`;

const resolvers = {
    Query: {
        hello: () => 'world',
    },
};


const server = new ApolloServer({
    typeDefs,
    resolvers,
    introspection: true,
})

console.log('###? running lambda')

export const handler = startServerAndCreateLambdaHandler(
    server, …
Run Code Online (Sandbox Code Playgroud)

aws-lambda graphql apollo-server

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

OSX上的Gstreamer

我正在尝试创建一个非常简单的Gstreamer管道,其中我的源元素是FaceTime相机,而接收器元素是udp接收器。

我首先按照此处的说明安装Gstreamer 。我运行一些基本管道没有问题;但是,当我尝试使用以下命令时

./gst-launch-0.10 v4l2src ! xviimagesink
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: pipeline could not be constructed: no element "v4l2src".
Run Code Online (Sandbox Code Playgroud)

因此,我进行了一些挖掘,结果发现v4l2src插件在gst-plugins-good中。我使用以下命令使用macports安装了这些优秀的插件:

port install gst-plugins-good
Run Code Online (Sandbox Code Playgroud)

经过很长一段时间后,所有内容均已正确安装。现在,gst-launch出现在三个位置。

/Library/Frameworks/GStreamer.framework/Versions/0.10/bin/gst-launch-0.10
/opt/local/bin/gst-launch
/opt/local/bin/gst-launch-0.10
Run Code Online (Sandbox Code Playgroud)

如果我尝试从任何这些目录中运行上面提到的pipline,我仍然会得到

ERROR: pipeline could not be constructed: no element "v4l2src".
Run Code Online (Sandbox Code Playgroud)

如果我从任何地方键入以下命令,都会遇到更多错误,但似乎仍然找不到v4lsrc。

gst-launch v4l2src ! xviimagesink
Run Code Online (Sandbox Code Playgroud)

给出:

Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic …
Run Code Online (Sandbox Code Playgroud)

gstreamer facetime gst-launch osx-mountain-lion

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