小编Cha*_*les的帖子

Boto3,python以及如何处理错误

我只是选择python作为我的首选脚本语言,我试图找出如何使用boto3进行正确的错误处理.

我正在尝试创建一个IAM用户:

def create_user(username, iam_conn):
    try:
        user = iam_conn.create_user(UserName=username)
        return user
    except Exception as e:
        return e
Run Code Online (Sandbox Code Playgroud)

当对create_user的调用成功时,我得到一个整洁的对象,其中包含API调用的http状态代码和新创建的用户的数据.

例:

{'ResponseMetadata': 
      {'HTTPStatusCode': 200, 
       'RequestId': 'omitted'
      },
 u'User': {u'Arn': 'arn:aws:iam::omitted:user/omitted',
           u'CreateDate': datetime.datetime(2015, 10, 11, 17, 13, 5, 882000, tzinfo=tzutc()),
           u'Path': '/',
           u'UserId': 'omitted',
           u'UserName': 'omitted'
          }
}
Run Code Online (Sandbox Code Playgroud)

这非常有效.但是当这个失败时(比如用户已经存在),我只得到一个类型为botocore.exceptions.ClientError的对象,只有文本告诉我出了什么问题.

示例:ClientError('调用CreateUser操作时发生错误(EntityAlreadyExists):名称已省略的用户已存在.',)

这个(AFAIK)非常难以处理错误,因为我不能只打开生成的http状态代码(根据IAM的AWS API文档,用户已经存在409).这让我觉得我必须以错误的方式做事.最佳方式是boto3永远不会抛出异常,但juts总是返回一个反映API调用方式的对象.

任何人都可以在这个问题上启发我或指出我正确的方向吗?

非常感谢!

python boto amazon-web-services boto3

171
推荐指数
5
解决办法
13万
查看次数

有没有办法更改Amazon API Gateway返回的http状态代码?

例如,如果我想为无效参数返回特定的400错误,或者当lambda函数调用导致创建时返回201.

我想有不同的http状态代码,但看起来api网关总是返回200状态代码,即使lambda函数返回错误.

amazon-web-services aws-lambda aws-api-gateway

87
推荐指数
8
解决办法
6万
查看次数

如何通过Amazon API Gateway + Lambda(节点)检索用户的公共IP地址

我正在编写一个Node.js lambda函数,我想在其中记录传入请求者的公共IP地址.我一整天都在查看API网关和Lambda文档,但还没有找到解决方案.

lambda event对象是否包含我可以用来提取用户IP的请求元数据?

amazon-web-services node.js aws-lambda aws-api-gateway

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

随机地理坐标(在陆地上,避免海洋)

关于如何生成地球上的随机坐标(纬度/经度)的任何聪明的想法?纬度/经度.精确到5点,避免水体.

    double minLat = -90.00;
    double maxLat = 90.00;      
    double latitude = minLat + (double)(Math.random() * ((maxLat - minLat) + 1));
    double minLon = 0.00;
    double maxLon = 180.00;     
    double longitude = minLon + (double)(Math.random() * ((maxLon - minLon) + 1));
    DecimalFormat df = new DecimalFormat("#.#####");        
    log.info("latitude:longitude --> " + df.format(latitude) + "," + df.format(longitude));
Run Code Online (Sandbox Code Playgroud)

也许我生活在一个梦想的世界里,水话题是不可避免的......但希望有一个更好,更清洁,更有效的方法来做到这一点?

编辑

一些奇妙的答案/想法 - 然而,在规模上,让我们说我需要生成25,000个坐标.由于延迟,成本和一些其他因素,去外部服务提供商可能不是最佳选择.

java gis geocoding

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

我可以将Jenkins配置存储在项目仓库中(如Travis CI)吗?

如何在源代码旁边维护SCM中的Jenkins作业配置?

随着源代码的发展,作业配置也在不断发展.能够将作业配置保留在SCM中是理想的,具有以下优点:

  • 很容易看出谁有变化的历史,包括作者和描述
  • 能够通过检查修订版并构建正常工作来重建旧的分支/标记
  • 无需滚动UI以查找相应的部分并进行更改

我看到有一个Jenkins Job Builder插件.我更喜欢Travis CI的解决方案,其中作业配置保存在YAML文件(.travis.yml)中.有什么好建议吗?

注意:我们的大多数项目都使用Java和Maven.

continuous-integration jenkins jenkins-plugins

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

Node.js数据库的抽象层

我一直在寻找简单的数据库抽象实现,然后我找到了很棒的文章http://howtonode.org/express-mongodb,虽然很旧,但我仍然喜欢这个想法.

也许构造,可以采取某种对象文字与数据库设置.所以主要的想法是可能有不同的UserService-s实现,但位于不同的目录中,只需要一个需要的目录.

/data-layer/mongodb/user-service.js
                   /post-service.js
                   /comment-service.js

/data-layer/couchdb/user-service.js
                   /post-service.js
                   /comment-service.js
Run Code Online (Sandbox Code Playgroud)

当需要数据库时,我会在var UserService = require(__dirname + '/data-layer/mongodb/user-service).UserService(db);哪里得到它var db = "open db object"

这是正确的做法吗?还是有更好的解决方案?

mongodb node.js

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

如何在群集模式下使用pm2启动node.js应用程序?

我们正试图在ubuntu 14.04上使用octa core proccessor以pm2 0.12.8开始我们的应用程序.git hub上的read me有一个非常直接的命令,用于在集群模式下运行节点应用程序.

#群集模式

$ pm2 start app.js -i 0        **# Will start maximum processes with LB depending on available CPUs**
$ pm2 start app.js -i max      **# Same as above, but deprecated yet.**
Run Code Online (Sandbox Code Playgroud)

但上述命令对我们不起作用.当我们尝试运行这些命令时,pm2只列出了一个实例.

为什么?任何建议

谢谢

ubuntu cluster-computing node.js pm2

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

如何计算ARM处理器算法的MIPS

最近我被要求为我们开发的算法生成MIPS(每秒百万条指令).该算法由一组C风格的函数公开.我们在Dell Axim上运用代码来对不同输入下的性能进行基准测试.

这个问题来自我们的硬件供应商,但我主要是HL软件开发人员,因此我不确定如何回应该请求.也许有类似硬件/软件背景的人可以帮助......

  1. 由于我们的算法不是实时的,我认为我们不需要将其量化为MIPS.是否可以简单地引用汇编指令的总数?

  2. 如果1为真,那么如何(或者如何测量汇编指令的数量)一般或特别针对ARM/XScale?

  3. 可以在WM设备上或通过VS2005中提供的设备仿真器执行2吗?

  4. 3可以自动化吗?

非常感谢你的帮助.查尔斯


感谢你的帮助.我认为S.Lott砸了钉子.作为后续行动,我现在有更多问题.

5有关如何测量MIPS的任何建议吗?我听说有人建议运行我们的算法并将其与Dhrystone/Whetstone基准进行比较以计算MIS.

6由于算法不需要实时运行,MIPS真的是一个有用的措施吗?(例如,阶乘(N))有哪些其他方法来量化处理要求?(我已经测量了运行时性能,但这不是一个令人满意的答案.)

7最后,我假设MIPS是粗略的估计,并且将是dep.关于编译器,优化设置等?

benchmarking arm

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

如果有多个领导者,Raft算法如何保证共识?

正如论文所说:

选举安全:在一个特定的任期内,最多只能选出一名领导人.§5.2

但是,系统中可能有多个领导者.筏只能承诺在给定的期限内只有一个领导者.所以如果我有多个客户端,我不会得到不同的数据吗?这如何让Raft成为一致的算法?

有什么我不明白的,有人可以解释一下吗?

algorithm distributed consensus raft

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

如何使用Python GZip模块压缩文件夹?

我正在创建压缩文件/文件夹的Python软件......我如何创建一段代码,要求用户输入文件夹位置然后压缩它.我目前有单个文件的代码,但不是一个文件夹.请详细说明如何执行此操作.

python compression gzip tar

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