小编Lin*_*ang的帖子

使用docker composer在AWS beanstalk上部署docker

我正在尝试在AWS beanstalk上部署多个node.js微服务,我希望它们部署在同一个实例上.这是我第一次部署多项服务,所以有些失败我需要有人来帮助我.所以,我首先尝试将它们打包到docker容器中.同时我正在使用docker composer来管理结构.它在我的虚拟机中启动并运行,但是当我将它部署到beanstalk时,我遇到了一些问题.

我知道的:

  1. 我知道我必须选择部署为多容器泊坞机.
  2. 管理多个node.js服务的最佳实践是使用docker composer.
  3. 我需要一个dockerrun.aws.jsonfor node.js应用程序.
  4. 我需要为该ecs实例创建任务定义.

哪里有问题:

  1. 我只能找到dockerrun.aws.jsontask_definition.json PHP的模板,所以我无法验证,如果我在这两个JSON文件Node.js的配置都在正确的形状.
  2. 看来docker-compose.yml,dockerrun.aws.json并且task_definition.json正在做类似的工作.我必须保持task_definition,但是我还需要dockerrun.aws.json吗?
  3. 我试图在ecs中运行任务,但它立即停止了.如何查看日志以查找任务?

我有:

在环境中找不到ecs任务定义(或空定义文件)

因为我的任务将永远停止.如果我可以查看日志,我会更容易进行故障排除.

这是我的task_definition.json:

{
  "requiresAttributes": [],
  "taskDefinitionArn": "arn:aws:ecs:us-east-1:231440562752:task-definition/ComposerExample:1",
  "status": "ACTIVE",
  "revision": 1,
  "containerDefinitions": [
    {
      "volumesFrom": [],
      "memory": 100,
      "extraHosts": null,
      "dnsServers": null,
      "disableNetworking": null,
      "dnsSearchDomains": null,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80,
          "protocol": "tcp"
        }
      ],
      "hostname": null,
      "essential": true,
      "entryPoint": null,
      "mountPoints": [
        {
          "containerPath": "/usr/share/nginx/html",
          "sourceVolume": "webdata", …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs docker amazon-elastic-beanstalk docker-compose

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

tensorflow如何忽略未定义的标志

我在一个简单的flask服务器中包装我的tensorflow模型,我正在gunicornflask服务器添加wsgi .当我运行gunicorn并试图发送一个请求来调用我已经导入到烧录服务器的火车功能时,我从命令行参数解析得到一个错误:

absl.flags._exceptions.UnrecognizedFlagError:未知的命令行标志'b'

我知道当gunicorn绑定地址参数时会传递这个标志,因为我没有为tensorflow命名为'b'的标志.所以我的问题是tensorflow如何忽略这些tf.app.run()函数不会抱怨的未定义标志?

仅供参考,这是我的服务器结构:

wsgi.py:

from simple_server import app

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

simple_server.py:

from my_tf_model import my_train

@app.route('/call_train', methods=['POST'])
def call_train():
    if request.method == 'POST':
        training_data = request.json
        my_train(training_data, param2)  
        return('Trained!')
Run Code Online (Sandbox Code Playgroud)

my_tf_model.py:

tf.app.flags.DEFINE_integer('model_version',1, 'version number of the model.')
tf.app.flags.DEFINE_string('work_dir', '', 'Working directory.')
FLAGS = tf.app.flags.FLAGS

def my_train(param1, param2):
    # Train Algorithm
    export_path_base = FlAGS.work_dir
    # Exporting model code

def main(argv):

    my_train(param1, param2)

if __name__ == "__main__":
    tf.app.run()
Run Code Online (Sandbox Code Playgroud)

更新:

我使用的是 …

python flask gunicorn tensorflow

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

在 react-native 中将嵌套的领域对象转换为 json

我在我的 react-native 应用程序中定义了嵌套的领域对象:

export const userSchema = {
  name: 'User',
  primaryKey: 'id',
  properties: {
    id: 'string',
    user_id: 'string',
    password: 'string',
    demographics: 'Demographics',
    notes: 'string'
  }
}

export const demographicsSchema = {
  name: 'Demographics',
  primaryKey: 'id',
  properties: {
    id: 'int',
    age: 'int',
    height: 'float',
    weight: 'float',
    gender: 'int',
  }
}
Run Code Online (Sandbox Code Playgroud)

当我User从领域查询时,我想将其转换为 Json 并通过 http 请求发送到后端服务器。但是,在搜索将领域对象转换为 Json 的模块后,我没有找到任何有用的内容来完成这项特定任务。如果有人知道在 react-native 中将嵌套领域对象转换为 Json 的简单方法,我将不胜感激。

javascript realm react-native

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

出现错误:使用本地节点服务从S3调整图像大小时,Stream会产生空缓冲区

我有一个非常类似的方法:使用nodeJs和AWS调整图像大小.当我在Windows 10上本地运行我的服务时,我仍然会遇到同样的错误.它可以在lambda云上完美运行.我发现如何有限的内存或有限超时可能会引发这次讨论stderrgm:流处理的GM大的图像文件时产生空缓冲区错误.此外,这个讨论还提到了有限的内存如何使你的lambda服务易受攻击而且不健壮:在amazon lambda中,并行异步抛出调整多个缩略图大小错误:Stream产生空缓冲区.但是,我在本地运行这个节点服务并且有足够的空闲内存,我不应该一直遇到这个"有限内存"陷阱.我在想这个问题来自于gm.这是我的代码:

async.forEachOf(_sizesArray, function(value, key, callback) {
        async.waterfall([

            function download(next) {
                s3.getObject({
                    Bucket: srcBucket,
                    Key: srcKey
                }, next);
            },
            function convert(response, next) {
                console.log(response.Body);
                gm(response.Body,srcKey).antialias(true).density(
                    300).toBuffer('JPG', function(err,
                    buffer) {
                    if (err) {
                        console.log(err + "\n\nfrom convert\n");
                        next(err);
                    } else {
                        next(null, buffer);
                    }
                });
            },
            function process(response, next) {
                gm(response).size(function(err, size) {
                    var scalingFactor = Math.min(
                        _sizesArray[key].width /
                        size.width, _sizesArray[
                            key].width / size.height
                    );
                    var width = …
Run Code Online (Sandbox Code Playgroud)

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

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

在react styles js文件中定义的导出全局变量

我已经分开styles.jsapp.js为一个简单的应用程序.我将图像资源定义为全局常量变量.(对于徽标和配置文件)我也尝试添加这些常量图像资源styles.js.但是使用我当前的方法和语法,我无法导出这些常量图像资源,styles.js因为它们没有在样式变量包装器中定义.

styles.js:

 'use strict'

import React, { Component } from 'react';
import {StyleSheet} from 'react-native';

/*
  const background_img= require("../../resource/mybackground.png");
  I tried to define the resource path here
*/

var styles = StyleSheet.create({
   /*Styles Definition*/
});

export default styles
Run Code Online (Sandbox Code Playgroud)

app.js:

'use strict'

import React, { Component } from 'react';
import { AppRegistry, Text, TextInput, View, Image,
TouchableOpacity, Alert} from 'react-native';
import styles from './styles.js';

/*const background= require("../../resource/mybackground.png");*/
// I want to …
Run Code Online (Sandbox Code Playgroud)

javascript react-native

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

AWS lambda函数调用S3.getObject被拒绝访问

我正在使用 lambda 函数来缩略图 s3 存储桶中的图像。我在这里找到了一个示例:Image conversion using Amazon Lambda and S3 in Node.js。但是,重构代码后,调用 s3.getObject() 时访问被拒绝。我检查了我的 IAM 策略是否错误地授予了权限,但我拥有对 Lambda、S3 和 CloudFront 的完全访问权限。下面是抛出异常的方式:

async.waterfall([

    function download(next) {
        console.log(srcBucket+ "  "+srcKey);
        s3.getObject({
            Bucket: srcBucket,
            Key: srcKey
        }, next);
        console.log(srcBucket+ "  "+srcKey+ "After");
    }

], function(err, result) {
    if (err) {
        console.error(err);
    }
    // result now equals 'done'
    console.log("End of step " + key);
    callback();
});
Run Code Online (Sandbox Code Playgroud)

另外,我的 matchng 正则表达式设置与示例相同:

var srcBucket = event.Records[0].s3.bucket.name;
var typeMatch = srcKey.match(/\.([^.]*)$/);
var fileName = path.basename(srcKey);
if …
Run Code Online (Sandbox Code Playgroud)

lambda amazon-s3 amazon-web-services node.js

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

chmod 777 -R 在现有路径上获取 chmod: -R: 没有这样的文件或目录

我想sudo chmod 777 -R <path>在 mac 上授予操作访问权限,我仔细检查了给定的路径,它存在并且没有拼写错误,但我仍然得到chmod: -R: No such file or directory. 关于为什么我收到此错误的任何想法?

permissions macos bash chmod

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