GameLiftClient::UploadBuild() API in C++ SDK

Current AWS C++ SDK GameLift (version 1.6.3) don’t have GameLiftClient::UploadBuild() API working as aws gamelift upload-build in AWS CLI.
So, as for now, I need to implement it by myself in my source code, with these steps:

  1. Archive my game server build directory to a zip file.

  2. Upload the zip file to AWS S3 storage.

  3. Call CreateBuild() API in AWS C++ SDK GameLift with the location of the zip file in AWS S3 storage.

Q1. Am I missing anything with these steps?
Q2. Or, could you please provide any better workaround?
Q3. Is there any example code for these steps?
Q4. Does the GameLift Dev Team have any plan to add UploadBuild() API in near future?

Thanks. (*)

Hey @LittleDiff - You are right, the UploadBuild command does not exist in the AWS C++ SDK (or any AWS SDK in any language). The reason being is that the command is actually a CLI-side helper command that combines a few GameLift APIs to make it easy to upload your local server binaries and libraries. As you point out, it performs these actions:

  • zips the binaries
  • creates a new Build
  • generates a presigned URL
  • uploads the binaries
    We do not have plans in the near future to add this functionality to the AWS SDK, only the AWS CLI for now.

You are right that upload build via AWS cli has functionality that is not in the C++/C# SDKs.

  1. Your steps are mostly right, though you will also need to give Gamelift permission to access your builds this way:

https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html

  1. Not necessarily better, buy you can use the AWS cli in code as both C++ and C# have mechanisms to call processes to exec scripts etc.

  2. I don’t believe any code examples exist at this time, but I will check.

  3. I will ensure a request to make an SDK version of UploadLoad is in the back log, but we have no committed date at this time to add this functionality.