小编Put*_*nik的帖子

DynamodDB:如何更新排序键?

该表有两个键:(filename分区键)和eventTime(排序键)。我想更新eventTime某些filename。尝试put_item()update_item()发送同样的filename新的eventTime,但这些功能添加一个新的项目,而不是更新的。

我应该为此目的使用什么?

python amazon-web-services amazon-dynamodb

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

pylint:全局变量未分配

代码:

assets = {}                # line 1

def myfunc():
    global assets          # line 4

    if assets.get("a", None) is None:
        assets["a"] = 2
Run Code Online (Sandbox Code Playgroud)

pylint 结果:

C:  1, 0: Invalid constant name "assets" (invalid-name)
C:  4, 4: Invalid constant name "assets" (invalid-name)
W:  4, 4: Using global for 'assets' but \
    no assignment is done (global-variable-not-assigned)
Run Code Online (Sandbox Code Playgroud)

该函数稍后将被多次调用,所以我只想分配(在现实生活中一些耗时的过程)该值一次。

我应该怎样做才正确呢?

ps:谢谢@deceze,我对以下事实感到困惑:如果assets = {}我不使用,assets = {"a":2}行为将完全不同。

python global-variables pylint

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

如何使用 yq 验证 yaml?

我知道至少有两个yq,我正在使用这个:https://github.com/mikefarah/yq。根据文档,我可以验证yaml这样的文件:

yq -v file.yaml
Run Code Online (Sandbox Code Playgroud)

问题:它输出大量调试信息,但是根据文档,它应该输出“如果[文件]有效,则不输出任何内容,否则它将打印错误”。据我所知,该文件看起来有效。

如果文件有效,我应该如何避免输出?

文件:

name: Copywrite

on:
  push:
    tags:
      - v*
    branches:
      - main
  pull_request:
  workflow_dispatch:

jobs:
  copywrite:
    name: Run Header Copyright
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@93ea575cc8 # v3.1.0

      - name: Install Copywrite
        id: install
        uses: hashicorp/setup-copywrite@v1.0.0

      - name: Output Installed Copywrite Version
        run: echo "Installed Copywrite CLI ${{steps.install.outputs.version}}"

      - name: Run Copywrite Header Compliance
        run: copywrite headers --plan
Run Code Online (Sandbox Code Playgroud)

输出:

yq -v ./file.yml
16:52:54 processArgs [DEBU] …
Run Code Online (Sandbox Code Playgroud)

validation yq

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

Terraform:无法解锁状态:无法检索锁定信息:JSON 输入意外结束

  • Terraform v0.13.5
  • 提供者 aws v3.7.0
  • 后端:AWS S3+DynamoDB

terraform plan被中止,现在无法获取状态锁。我正在尝试手动释放它,但出现错误:

terraform force-unlock -force xxx-xxx-xx-dddd

Failed to unlock state: failed to retrieve lock info:
unexpected end of JSON input
Run Code Online (Sandbox Code Playgroud)

状态文件看起来完整并成功通过了 json 语法验证。

如何解决?

terraform terraform-provider-aws

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