Есть ли способ узнать возраст образа Docker, загруженного в AWS ECR?
Когда я прошу манифест изображения с aws ecr batch-get-image --repository some/repo --image-ids "imageDigest=sha256:abcdef..."
затем он возвращает ответ AWS со встроенным манифестом. Пример вывода
{
"images": [
{
"registryId": "1234",
"imageId": {
"imageDigest": "sha256:abcdef...",
"imageTag": "latest"
}
},
"imageManifest": "<serialised JSON I'll paste below>"
"repositoryName": "some/repo"
}
],
"failures": []
}
а сериализованный JSON, встроенный в ответ AWS, выглядит следующим образом:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 123456,
"digest": "sha256:38f08cc551925935e235c5c94ab3fb89568bd286e3335aa2e05d7bd3ceee4574"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 573764,
"digest": "sha256:06dde66f337b57adcfca48b87d126b99a249765ccf2e09964584befc2890ae79"
}
]
}
я не вижу метаданных, указывающих, когда это изображение было отправлено в ECR.
Оказывается, мне не хватило разрешений (не хватило ecr: ListImages) использовать aws ecr describe-images
. С соответствующими разрешениями я могу запустить эту подкоманду и увидеть imagePushedAt
. Например.
{
"imageDetails": [
{
"imageDigest": "sha256:309b3ae71cf0780232cb013fb77507977625f8fe8cee868feca2649890ae073b",
"repositoryName": "somerepo/someimage",
"registryId": "12345",
"imagePushedAt": 1485358557.0,
"imageSizeInBytes": 8986900
},
{
"imageDigest": "sha256:036a5da0dd8ef4a949293818cb05d15aaa31f2e8d9f464f9376667be9919e646",
"repositoryName": "somerepo/someimage",
"registryId": "12345",
"imagePushedAt": 1485362799.0,
"imageSizeInBytes": 8986643
},
... and so on ...