小编Анд*_* Ка的帖子

AWS LAMBDA"errorMessage":"[Errno 30]只读文件系统:'drive-python-quickstart.json'"

我在AWS Lambda中使用googledrive凭据时遇到问题,在我调用本地机器上的函数之前部署我的.zip文件之后,一切正常,但是我在AWS中部署zip后~30min我有lambda函数错误

  "errorMessage": "[Errno 30] Read-only file system: 'drive-python-quickstart.json'",
"errorType": "OSError",
  "stackTrace": [
    [
      "/var/task/lambda_function.py",
      33,
      "lambda_handler",
      "pageSize=10,fields=\"nextPageToken, files(id, name)\").execute()"
    ],
    [
      "/var/task/oauth2client/_helpers.py",
      133,
      "positional_wrapper",
      "return wrapped(*args, **kwargs)"
    ],
    [
      "/var/task/googleapiclient/http.py",
      835,
      "execute",
      "method=str(self.method), body=self.body, headers=self.headers)"
    ],
    [
      "/var/task/googleapiclient/http.py",
      162,
      "_retry_request",
      "resp, content = http.request(uri, method, *args, **kwargs)"
    ],
    [
      "/var/task/oauth2client/transport.py",
      186,
      "new_request",
      "credentials._refresh(orig_request_method)"
    ],
    [
      "/var/task/oauth2client/client.py",
      761,
      "_refresh",
      "self._do_refresh_request(http)"
    ],
    [
      "/var/task/oauth2client/client.py",
      802,
      "_do_refresh_request",
      "self.store.locked_put(self)"
    ],
    [
      "/var/task/oauth2client/file.py",
      79,
      "locked_put",
      "f = open(self._filename, 'w')"
    ]
  ]
}
Run Code Online (Sandbox Code Playgroud)

在文件file.py我有这个代码:

 def …
Run Code Online (Sandbox Code Playgroud)

python lambda amazon-web-services google-drive-api aws-lambda

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

JENKINS上的AWS CLI命令

我正在尝试编写一个脚本,在Jenkins的帮助下将查看git中的更新文件,下载并使用AWS KMS加密它们.我有一个工作脚本,可以完成所有工作,并将文件下载到本地服务器上的Jenkins存储库.但我的问题是在Jenkins repo中加密这个文件.基本上,当我加密本地计算机上的文件时,我使用命令:

aws kms encrypt --key-id xxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx --plaintext fileb://file.json --output text --query CiphertextBlob | base64 --decode > Encrypted-data.json
Run Code Online (Sandbox Code Playgroud)

并且一切正常,但如果我尝试使用Jenkins,我会收到AWS命令未找到的错误.
有人知道如何解决这个问题,我如何通过Jenkins运行AWS?这是我的工作代码,它在最后一行分解:

bom_sniffer() { 

  head -c3 "$1" | LC_ALL=C grep -qP '\xef\xbb\xbf'; 
  if [ $? -eq 0 ] 
  then 
    echo "BOM SNIFFER DETECTED BOM CHARACTER IN FILE \"$1\""
    exit 1
  fi
}
check_rc() {
  # exit if passed in value is not = 0
  # $1 = return code
  # $2 = command …
Run Code Online (Sandbox Code Playgroud)

encryption terminal amazon-s3 amazon-web-services jenkins

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

如何反转grep命令的输出?

我对grep命令有一个问题。在我的脚本中,我使用:

   "ServicePassword":fooooooooooo
   "ServiceUserName":barrrrrrrrr
grep -E '"ServiceUserName"|"ServicePassword"' >> user.txt
Run Code Online (Sandbox Code Playgroud)

但是在user.txt文件中,我将首先获取“ ServicePassword”:fooooooooooo,然后获取“ ServiceUserName”:barrrrrrrrr我如何使用grep命令将其反向以获取user.txt文件中的第一个ServiceUserName然后ServicePassword输出?我只需要这个顺序。我尝试更改:

grep -E '""ServicePassword""|"ServiceUserName"' >> user.txt
Run Code Online (Sandbox Code Playgroud)

什么都没有...。也许存在更好的解决方案?

linux bash shell grep

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

Git预提交挂钩检查消息

我有git commit hook script,他检查提交输入消息,如果消息不包含单词“ updated”,则脚本拒绝提交。

#!/bin/bash
read -p "Enter a commit message: " message

if [[ ${message} != *"updated"* ]];then
  echo "Your commit message must contain the word 'updated'"
  else
  git commit -m "$message"
  fi
Run Code Online (Sandbox Code Playgroud)

如果我尝试用以下消息将本地文件中的某些文件推送到git commit -m“ updated:something”中,如何使此挂钩自动执行,我的想法是使其不像“运行此脚本来进行提交”,但是然后打开控制台并尝试通过键入commant进行提交,脚本将自动检查您的提交消息并通过或拒绝。

unix linux git github githooks

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

无法导入模块 ANTLR MyGrammarLexer 和 MyGrammarParser

我正在尝试从ANTLR开始。当我导入模块时antlr它工作得很好,但是如果我尝试导入MyGrammarLexerMyGrammarParser,它表明 MyGrammarLexer 和 Parser 不在 lib 中。我使用 PyCharm ,安装了 ANTLR: pip3 install antlr4-python3-runtime我的代码是:

import sys
from antlr4 import *
import MyGrammarLexer
import MyGrammarParser


def main(argv):
    input = FileStream(argv[1])
    lexer = MyGrammarLexer(input)
    stream = CommonTokenStream(lexer)
    parser = MyGrammarParser(stream)
    tree = parser.startRule()


if __name__ == '__main__':
    main(sys.argv)
Run Code Online (Sandbox Code Playgroud)

也许谁知道为什么我无法导入 MyGrammarLexer 和 MyGrammarParser?请建议!反击:

    /usr/bin/python3.6 /home/andrejka/PycharmProjects/Parser/parser.py
Traceback (most recent call last):
  File "/home/andrejka/PycharmProjects/Parser/parser.py", line 2, in <module>
    from antlr4 import *
  File "/usr/lib/python3/dist-packages/antlr4/__init__.py", line 5, in <module> …
Run Code Online (Sandbox Code Playgroud)

python antlr pycharm python-3.x antlr4

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