AWS にサービスをデプロイするのに役立つスクリプトを作成しました。私のプロジェクトでは複数のAWSアカウントと複数のサービスを使用しているため、使いやすさをより明確にするためにいくつかの値を事前定義したいと思います。これが私がする方法です:
#!/bin/bash
declare -A environments
environments["sandbox"]="aws_sandbox_account_id"
environments["staging"]="aws_staging_account_id"
environments["prod"]="aws_production_account_id"
declare -A services
services["service1"]="api-service-1-ecs-id"
services["service2"]="api-service-2-ecs-id"
services["service3"]="api-service-3-ecs-id"
aws_role=${ASSUMED_ROLE}
service="${services[$1]}"
environment="${environments[$aws_role]}"
echo "deploying ${service} on ${aws_role} with account id ${environment}"
echo "aws ecs update-service --cluster \"arn:aws:ecs:eu-west-2:${environment}:cluster/my-cluster\" --service \"arn:aws:ecs:eu-west-2:${environment}:service/my-cluster/${service}\" --force-new-deployment"
aws ecs update-service --cluster "arn:aws:ecs:eu-west-2:${environment}:cluster/my-cluster" --service "arn:aws:ecs:eu-west-2:${environment}:service/my-cluster/${service}" --force-new-deployment
次に、次の関数を定義しました。
deploy_service () {
bash /path/to/file/script.sh $1
}
しかし、これを行うより良い方法があるのか、それとも少なくとももっと慣用的な方法があるのか疑問に思います。