0

Got an alert saying my CodeArtifact usage has crossed FreeTier limit. I was trying to find out how much storage is currently consumed but got no clue from AWS Console or even cli.

I ended up listing down all repositories of a domain > then listing down all packages of that domain > then listing down all versions of that package > sum of all assets of the version.

domains=$(aws codeartifact list-domains | jq -r ".domains[].name")
total_artifactory_size=0

for d in $domains; do
  repos=$(aws codeartifact list-repositories-in-domain --domain $d | jq -r ".repositories[].name")
  for r in $repos; do
    packages=$(aws codeartifact list-packages --domain $d --repository $r | jq -r ".packages[].package")
    for p in $packages; do
      packageversions=$(aws codeartifact list-package-versions --package $p --domain $d --repository $r --format pypi | jq -r ".versions[].version")

      for pv in $packageversions; do
        sizes=$(aws codeartifact list-package-version-assets --domain $d --repo $r --format pypi --package $p --package-version $pv | jq -r ".assets[].size")
        echo $d" "$p" "$r" "$pv" "$sizes >>size.tb

        total=0

        for size in $sizes; do
          sum=$(($total + $size))
        done

        echo "Package Size: $sum" >>size.tb
        total_artifactory_size=$((total_artifactory_size + $sum))

      done
    done
  done
done

echo "Total Artifactory Size: $total_artifactory_size"

But I don't think this is the proper way. It takes a lot of time to list down everything from asset level.

I was curious if there's any better way to get a glimpse of AWS CodeArtifact Storage usage.

Rafaf Tahsin
  • 7,652
  • 4
  • 28
  • 45

0 Answers0