Categorygithub.com/takaishi/awscost
repositorypackage
0.0.7
Repository: https://github.com/takaishi/awscost.git
Documentation: pkg.go.dev

# README

awscost

The awscost is a tool to print AWS costs to text or graph image.

Development

% make build
% AWS_PROFILE=${PROFILE_NAME} IS_LAMBA=false DRY_RUN=false ./dist/main

Deployment

  1. Secret

Secret must have secret valueSLACK_BOT_TOKEN and SLACK_CHANNEL as Key/Value.

  1. IAM Role

Role must have policies AWSLambdaBasicExecutionRole, CloudWatchLogsFullAccess and following policy:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ce:GetCostAndUsage",
                "ce:GetCostForecast",
                "organizations:ListAccounts"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "${SECRET_ARN}"
        }
    ]
}
  1. Deploy

I recomment to use fujiwara/lambroll.

function.json:

{
  "FunctionName": "awscost",
  "Handler": "bootstrap",
  "MemorySize": 128,
  "Role": "${IAM_ROLE_ARN}",
  "Runtime": "provided.al2",
  "Timeout": 20,
  "Environment": {
    "Variables": {
      "SECRET_NAME": "${SECRET_NAME}",
      "IS_LAMBDA": "true",
      "DRY_RUN": "false"
    }
  }
}

Download release and extract to dist directory:

curl -L https://github.com/takaishi/awscost/releases/download/v0.0.1/awscost_Linux_x86_64.tar.gz -o /tmp/awscost.tar.gz
tar -zxvf /tmp/awscost.tar.gz -C /tmp
mv /tmp/awscost ./dist/bootstrap

Deploy by lambroll:

lambroll deploy --function="function.json" --src="./dist"