2016-11-30 6 views
0

私はECRリポジトリ設定を持っています。これには順次タグ1と2の2つの画像が含まれています。この時点からドッカー画像を自動的にプッシュする予定です。次に、そのタグは3でなければならないので、最新のバージョンは2であるので、次の数字は3であるべきであることを何とか識別しなければならない。私はこのバージョンをローカルに保存したくない。だから私はECR自体からこの情報が必要です。何かご意見は?次のコマンドは、リポジトリAWS ECR画像リスト

aws ecr list-images 

答えて

2

jqについて指摘してくれてありがとう@Matt。 jqをインストールした後、次のコマンドを実行すると最新のバージョンが表示されます

aws ecr list-images --repository-name REPOSITORY_NAME | jq '.imageIds | map (.imageTag)|sort|.[]' | sort -r | head -1 
1

ECR ListImages APIエンドポイントは、リポジトリ内にあるすべての画像shasumsと関連するタグの一覧が表示されます内のすべての画像のリストが表示されます。 TAGGEDでも同様にfilterにすることができます。

それにはJava SDKがあります(しかし、私はJavaを扱っていませんので、あまり役に立ちません)。

Node.js Javascriptは、返されたオブジェクト/配列/オブジェクトに対してlodash連鎖処理のビットがかなり単純です。

const _ = require('lodash') 
const Promise = require('bluebird') 
const AWS = require('aws-sdk') 

let config = { 
    region: 'us-west-1', 
    repo = 'myrepo' 
} 

const ecr = new AWS.ECR({region: config.region}) 
Promise.promisifyAll(ecr) 

ecr.listImagesAsync({ repositoryName: config.repo, filter: { tagStatus: 'TAGGED'} }) 
.then(data => { 
    let img = _(data.imageIds).sortBy('imageTag').last() 
    console.log(img.imageTag) 
}) 

あなたはシェルでaws ecr list-images出力を処理したい場合はjqを試してみてください

npm init -y && npm install aws-sdk lodash bluebird --save 

と、現在のディレクトリにスクリプトの依存関係をインストールすることができます。

+0

jqについて指摘してくれてありがとう@Matt –

関連する問題