본문 바로가기

Ops/AWS

AWS Gamelift - build upload script (powershell)

반응형

AWS Gamelift - build upload script (powershell)

 

 

 

배포할 때 windows 환경에서 build upload를 위한 powershell 스크립트입니다.

 

foreach($rg in $REGION) {

    replace_config ${CFG} ${rg}

    echo " - Gamelift Build upload Region : ${rg}"



    aws gamelift upload-build --name "${DEPLOY_ENV}_${SERVER_NM}" --build-version "${ENVCD}_${global:VERSION}" --build-root "${SRC}" --region "${rg}"

    $BuildId = (aws gamelift list-builds --region "${rg}" --query "Builds[?Version == '${ENVCD}_${global:VERSION}']" | jq -r ".[].BuildId")

    echo " - Gamelift create fleet to BuildId : ${BuildId}"

    $runconf="ServerProcesses=[{LaunchPath=C:\game\${global:VERSION}\game.exe, ConcurrentExecutions=10, Parameters=-batchmode -nographics}]"

    $fleet=$(aws gamelift create-fleet --name "${DEPLOY_ENV}_${SERVER_NM}_${global:VERSION}" --description "Zone Server" --metric-groups "${ENVCD}" --build-id "$BuildId" --ec2-instance-type "$ec2_type" --fleet-type "$fl_type" --certificate-configuration "$cert_type" --ec2-inbound-permissions "$inbound" --new-game-session-protection-policy "FullProtection" --runtime-configuration "$runconf" --region "${rg}")

    echo $fleet

    $fleetid=$($fleet | jq -r '."FleetAttributes"."FleetId"')



    aws gamelift update-fleet-capacity --fleet-id $fleetid --desired-instances 1 --min-size 1 --max-size 25 --region $rg

    aws gamelift put-scaling-policy --fleet-id $fleetid --name "Scale in when AGS>80" --policy-type RuleBased --metric-name PercentAvailableGameSessions --comparison-operator GreaterThanThreshold --threshold 80 --evaluation-periods 5 --scaling-adjustment-type ChangeInCapacity --scaling-adjustment -1 --region $rg

    aws gamelift put-scaling-policy --fleet-id $fleetid --name "Scale out when AGS<50" --policy-type RuleBased --metric-name PercentAvailableGameSessions --comparison-operator LessThanThreshold --threshold 50 --evaluation-periods 1 --scaling-adjustment-type ChangeInCapacity --scaling-adjustment 2 --region $rg



    #$alias_id=$ALIAS[$count]

    $alias_id=$(aws gamelift list-aliases --region "${rg}" --query "Aliases[?Description == 'real zone alias']"| jq -r ".[].AliasId")

    echo " - Gamelift Alias update ${alias_id}"

    $route_role="Type=SIMPLE,FleetId=${fleetid}"

    aws gamelift update-alias --alias-id "$alias_id" --routing-strategy "$route_role" --region "${rg}"

    $count+=1

}

 

 

 


by mkdir-chandler


 

 

 

 

 

728x90
반응형