【发布时间】:2021-09-05 12:54:04
【问题描述】:
尝试使用 imageTag 提取 ecr 图像摘要。
base ❯ aws ecr list-images --repository-name itaig
{
"imageIds": [
{
"imageDigest": "sha256:ec2ad330fadaf1ef05e30b8ba1ee5a92efb8b39c8d51bbcfb706b1b1a1981020",
"imageTag": "latest"
},
{
"imageDigest": "sha256:9377451ac4ea941e49d3176457b3d285d6418fec883a9a8fee87a491b79ac06a"
},
{
"imageDigest": "sha256:1fb63f185c11a3300d394f83f8152d391b5f37ee3b17b73702296e979fb42576"
},
{
"imageDigest": "sha256:4fc44daf69561482c9b00858b1a60e6590444703b75d49fed7d46c025520ddac"
},
{
"imageDigest": "sha256:ce109ba9df0e566a4bd9d0a8311596b61def59d51c1b42455170dcb41451f4b0",
"imageTag": "main-48"
},
{
"imageDigest": "sha256:928950d4cab36d434f99e65bb75e65e4a6218760b1a32a08ac7212b2b6b9b9b0",
"imageTag": "main-49"
},
{
"imageDigest": "sha256:30a7f57f1a8aea4b00a441fff139806662342f0b584651231ed99738bf9d00b8"
},
{
"imageDigest": "sha256:2319a7b3d5a030cc22efc06be780d6789cbf575822dd96bffbb550e3d20faefd"
}
]
}
~/src/personal/aws-s3-lambda main ⇣
base ❯ TRAVIS_BUILD_NUMBER=49
~/src/personal/aws-s3-lambda main ⇣
base ❯ TRAVIS_BRANCH=main
~/src/personal/aws-s3-lambda main ⇣
base ❯ aws ecr list-images --repository-name itaig | jq -r --arg travis_branch ${TRAVIS_BRANCH} --arg travis_build_number ${TRAVIS_BUILD_NUMBER} '.imageIds[] | select(.imageTag=="$travis_branch-$travis_build_number") .imageDigest'
如果我不使用 args,它就像一个魅力:
base ❯ aws ecr list-images --repository-name itaig | jq -r '.imageIds[] | select(.imageTag=="main-49") .imageDigest'
sha256:928950d4cab36d434f99e65bb75e65e4a6218760b1a32a08ac7212b2b6b9b9b0
但是jq没有捕捉到相关的imageDigest。
我怀疑它与 travis_build_number 有关系,我想我需要使用“tonumber”,但我不确定将它放在查询中的哪个位置。
知道怎么做吗?
【问题讨论】:
标签: string variables parameter-passing jq string-interpolation