Menu
Lumberyard
Developer Guide (Version 1.11)

Using the Cloud Canvas Command Line

Cloud Canvas provides the \dev\lmbr_aws.cmd command line tool for working with AWS resources. The tool invokes Python code that is located in the \dev\Tools\lmbr_aws directory.

Notes

Syntax

Copy
lmbr_aws {command} {command-arguments}

{command} is one of commands in the command summary section that follows. {command-arguments} are the arguments accepted by the command. Arguments common to most commands are listed in the Common Arguments section. Arguments unique to a command are listed in the detail section for the command.

Configuration

The tool gets its default AWS configuration from the same ~/.aws/credentials and ~/.aws/config files as the AWS command line tools (for information, see Configuring the AWS Command Line Interface). The lmbr_aws tool does not require that the AWS command line interface be installed.

Environment Variables

As with the AWS command line tools, the default AWS configuration can be overridden by using the following environment variables.

  • AWS_ACCESS_KEY_ID The access key for your AWS account.

  • AWS_SECRET_ACCESS_KEY The secret key for your AWS account.

  • AWS_DEFAULT_REGION The default region to use; for example, us-east-2.

  • AWS_PROFILE The default credential and configuration profile to use, if any.

Configuration Arguments

The following arguments can be used to override the AWS configuration from all other sources:

  • --assume-role{role-name} or -R {role-name} – Specifies the IAM role to assume to perform the requested actions. The credentials in the ~/.aws/credentials file must be able to assume the specified role.

  • --aws-access-key {access-key} – The AWS access key that is used.

  • --aws-secret-key {secret-key} – The AWS secret key that is used.

  • --profile {profile-name} or -P {profile-name} – The AWS command line tool profile that is used.

Common Arguments

Most of the lmbr_aws commands accept the following arguments, in addition to their own individual arguments:

  • --aws-directory {aws} – Identifies the {game}\AWS directory to use. The default is the value of the sys_game_folder property from {root}\bootstrap.cfg with AWS appended.

  • --game-directory {directory} – Location of the game project directory. The default is {root}\{game} where {game} is determined by the sys_game_folder setting in the {root}\bootstrap.cfg file.

  • --help or -h – Display help for the command.

  • --no-prompt – Suppresses calls that request user input.

  • --root-directory {root} – Identifies the Lumberyard\dev directory. The default is the current working directory.

  • --user-directory {user} – Location of the user cache directory. The default is {root}\Cache\{game}\AWS where {game} is determined by the sys_game_folder setting in the {root}\bootstrap.cfg file.

  • --verbose – Shows additional output when executing commands.

Commands

Following are details of the lmbr_aws commands.

cloud-gem create

Create a cloud gem. This command is new in Lumberyard 1.11.

In addition to the Common Arguments, the cloud-gem create command accepts the following arguments:

  • --directory {path}

    Optional. The directory where the gem is created. The default is \dev\Gems\{name}\v{N}, where {name} is the name that was specified by the --gem option and {N} is the major part of the gem version number as specified by the --version option.

  • --enable

    Optional. Enable the gem for the current project when the gem is created. By default, the gem is not enabled when it is created.

  • --gem {name}

    Required. The name of the gem to create.

  • --initial-content {initial-content-type}

    Optional. Initialize the cloud gem's AWS directory with the contents specified by {initial-content-type}.

    Following are possible values for {initial-content-type}.

    Note

    Before you can use the api content options, do one of the following:

    • In Lumberyard Setup Assistant, choose Compile the game code

    • From a command prompt window on the \dev\Tools\LmbrSetup\Win directory, type the following command:

      Copy
      lmbr capabilities enable compilegame
    • api-lambda

      Define a resource group with Amazon API Gateway and AWS Lambda function resources that conform to the Cloud Gem Framework's Service API pattern. You can add AWS resources as needed.

    • api-lambda-bucket

      Define a resource group with API Gateway and Lambda function resources that conform to the Cloud Gem Framework's Service API pattern. Also creates an Amazon S3 bucket resource.

    • api-lambda-dynamodb

      Define a resource group with API Gateway and Lambda function resources that conform to the Cloud Gem Framework's Service API pattern. Also creates an Amazon DynamoDB table resource.

    • bucket

      Define a resource group that has an Amazon S3 bucket resource.

    • lambda

      Define a resource group that has a Lambda function resource.

    • no-resources

      Define a resource group that has no resources (except AccessControl, which is required). This is the default value.

    • resource-manager-plugin

      Define a resource manager plugin.

  • --no-cpp-code

    Optional. Define a gem that contains no C++ code and does not build as a .dll file. The gem can contain resource group definitions and/or resource manager plugins.

  • --version {version}

    Optional. Set the gem version to the number specified by {version}. The default is 1.0.0. The version number must be in the format {number}.{number}.{number}.

cloud-gem disable

Disable a cloud gem that is in the current project. This command is new in Lumberyard 1.11.

In addition to the Common Arguments, the cloud-gem disable command accepts the following arguments:

  • --gem {name}

    Required. The name of the gem to disable.

cloud-gem enable

Enable a cloud gem that is in the current project. This command is new in Lumberyard 1.11.

In addition to the Common Arguments, the cloud-gem enable command accepts the following arguments:

  • --gem {name}

    Required. The name of the gem to enable.

cloud-gem-tts import-tts-zip

Import generated voice packages from the Cloud Gem Text-to-Speech service into a project. This command is new in Lumberyard 1.11.

In addition to the Common Arguments, the cloud-gem-tts import-tts-zip command accepts the following arguments:

  • --download-path {zip-path}

    Required. The absolute path to a .zip file that was downloaded from the Text-to-Speech Cloud Gem Portal.

  • --import-as-wav

    Optional. Converts audio files to .wav file format when they are extracted.

For more information on downloading and importing speech files, see Text-to-Speech Cloud Gem Portal.

deployment create

Create a complete and independent copy of all the resources needed by the Lumberyard project.

In addition to the Common Arguments, the deployment create command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Required. The name of the deployment to create.

  • --enable-capability{capability}

    Optional. A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this argument. Possible values include: CAPABILITY_IAM.

  • --confirm-aws-usage or -C

    Optional. Confirms that you know that the deployment create command will create AWS resources for which you may be charged and that may perform actions that can affect permissions in your AWS account. Specify this argument to disable the related confirmation prompt.

deployment default

Set or show the default user and project deployments.

In addition to the Common Arguments, the deployment default command accepts the following arguments:

  • --set {deployment}

    Optional. Sets the default to the provided deployment name.

  • --clear

    Optional. Clears the defaults.

  • --show

    Optional. Shows the defaults.

  • --project

    Optional. Applies --set and --clear to the project default instead of the user default. Ignored for --show.

    Only one of the --set, --clear, and --show arguments is allowed.

    If --set or --clear is specified, this command updates the {root}\user\AWS\user-settings.json file. If --project is provided, the {root}\{game}\AWS\project-settings.json file is updated.

deployment delete

Delete a complete and independent copy of all the resources needed by the Lumberyard project.

In addition to the Common Arguments, the deployment delete command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Required. The name of the deployment to delete.

  • --enable-capability{capability}

    Optional. A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this argument. Possible values include: CAPABILITY_IAM.

  • --confirm-resource-deletion

    Optional. Acknowledges that the command will permanently delete the resources belonging to the specified deployment. If not specified, the user is prompted to confirm the deletion.

Note

AWS CloudFormation cannot delete stacks that define Amazon S3 buckets that contain data. To allow project stacks to be deleted, the project-template.json file specifies a DeletionPolicy of Retain for the configuration bucket. This causes AWS CloudFormation to not delete the bucket when the project stack is deleted. After the project stack has been deleted, the command removes all the objects from the configuration bucket and then deletes the bucket.

deployment list

List all deployments in the local project.

Example output:

Copy
Name Status Reason Timestamp Id ----------------- --------------- ---------------------------------------------------------------------------- ----------------- -------------------------------------------------------------------------------------------------------------------------- AnotherDeployment CREATE_PENDING Resource is defined in the local project template but does not exist in AWS. Development CREATE_COMPLETE 03/04/16 18:43:11 arn:aws:cloudformation:us-east-2:<ACCOUNTID>:stack/foo-hw-Development-ZDLXUB7FKR94/8e6492f0-e248-11e5-8e7e-50d5ca6e60ae User Default Deployment: (none) Project Default Deployment: Development Release Deployment: (none)

deployment list-resources

List all of the resources associated with the project.

In addition to the Common Arguments, the deployment list-resources command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of the deployment to list resources for. If not specified, lists all the project's resources.

deployment protect

Marks a deployment as protected and issues a warning when a user (for example, a developer or tester) attempts to connected a development game client to live resources. For more information, see Using Protected Deployments .

In addition to the Common Arguments, the deployment protect command accepts the following arguments:

  • --set {deployment-name}

    Optional. Specifies that the deployment is protected.

  • --clear {deployment-name}

    Optional. Specifies that the deployment is not protected.

  • --show

    Optional. Displays a list of the deployments that are currently protected.

    Note

    To display the protected status of deployments, you can also use either the deployment list or mappings list command.

deployment release

Sets, shows, or removes the release deployment.

In addition to the Common Arguments, the deployment release command accepts the following arguments:

  • --set {deployment-name}

    Required. The name of the deployment to set as the release.

  • --clear{capability}

    Removes the release designation from the current release deployment.

  • --show

    Shows the deployment that is currently configured as the release deployment.

deployment update-access

Sets, shows, or removes the release deployment.

In addition to the Common Arguments, the deployment update-access command accepts the following arguments:

  • --confirm-aws-usage or -C

    Optional. Confirms that you know this command creates AWS resources for which you can be charged and that it may perform actions that can affect permissions in your AWS account. Specify this argument to disable the related confirmation prompt.

  • --confirm-resource-deletion

    Optional. If the operation will delete resources permanently, confirms your acknowledgement and approval. If this argument is not specified, you are prompted to confirm completion of the operation. Specify this argument to disable the related confirmation prompt.

  • --confirm-security-change

    Optional. Confirms that you know that this command may make security-related changes. Specify this argument to disable the related confirmation prompt.

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of the deployment whose access stack is updated. If omitted, the default deployment is updated. Use * to update all deployments.

deployment update, deployment upload, deployment upload-resources

Updates a deployment. deployment upload or deployment upload-resources can be used instead of deployment update.

In addition to the Common Arguments, the deployment update command accepts the following arguments:

  • --confirm-aws-usage or -C

    Optional. Confirms that you know this command creates AWS resources for which you can be charged and that it may perform actions that can affect permissions in your AWS account. Specify this argument to disable the related confirmation prompt.

  • --confirm-resource-deletion

    Optional. If the operation will delete resources permanently, confirms your acknowledgement and approval. If this argument is not specified, you are prompted to confirm completion of the operation. Specify this argument to disable the related confirmation prompt.

  • --confirm-security-change

    Optional. Confirms that you know that this command may make security-related changes. Specify this argument to disable the related confirmation prompt.

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of the deployment to update. If omitted, the default deployment is updated.

function get-log

Retrieves data from a CloudWatch Logs log file.

In addition to the Common Arguments, the function get-log command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of a deployment. If this argument is specified, the --resource-group argument must also be specified. If this argument is omitted, then the function must exist in the project stack.

  • --function {function-name} or -f {function-name}

    Required. The logical name of a Lambda function resource.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Optional. The name of a resource group. If specified, the --deployment argument must also be specified.

  • --log-stream-name {log-stream-name} or -l {log-stream-name}

    Optional. The log stream name or partial log stream name. If omitted, the most recent log stream is shown.

function upload-code

asdf

In addition to the Common Arguments, the function upload-code command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of a deployment to update. If this argument is not specified, the default deployment is updated.

  • --function {function-name}

    Required. The name of the Lambda function to update. If not specified, all Lambda functions in the resource group are updated.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Optional. The name of a resource group to update. If not specified, all resource groups in the deployment are updated.

login-provider add

Add a player login provider to the Amazon Cognito identity pool configuration. Login providers allow your game's players to log in using their social network identity, such as Facebook or using their Amazon user identity. For more information, see Controlling Access to Resources.

In addition to the Common Arguments, the login-provider add command accepts the following arguments:

  • --provider {provider-name}

    Required. The name of the provider. The name must be amazon, google or facebook, or, if you are using a generic OpenID provider, a name that you choose.

  • --app-id {application-id}

    Required. The application id from your login provider (this is usually different from your client ID).

  • --client-id {client-id}

    Required. The unique application client ID for the login provider.

  • --client-secret {client-secret}

    Required. The secret key to use with your login provider.

  • --redirect-uri {redirect-uri}

    Required. The redirect URI to use with your login provider.

  • --provider-uri {provider-uri}

    Optional. The URI for a generic open ID connect provider. This is only use for generic OpenID providers.

  • --provider-port {provider-port}

    Optional. The port your provider listens on for its API. This is only used for generic OpenID providers.

  • --provider-path {provider-path}

    Optional. The path portion of your provider's URI. This is only used for generic OpenID providers.

    This command saves its configuration in a player-access/auth-settings.json object in the project's configuration bucket so that the PlayerAccessTokenExchange Lambda function can access it.

    Note

    You must run project upload after running this command so that the PlayerAccessIdentityPool configuration is updated to reflect the change.

login-provider remove

Remove a player login provider from the Amazon Cognito identity pool configuration.

In addition to the Common Arguments, the login-provider remove command accepts the following argument:

  • --provider {provider-name}

    Required. The name of the provider.

    The login-provider remove command saves the configuration in a /player-access/auth-settings.json object in the project's configuration bucket so that the PlayerAccessTokenExchange Lambda function can access it.

    Note

    You must run lmbr_aws project upload after running this command so that the PlayerAccessIdentityPool configuration is updated to reflect the change.

login-provider update

Update a player login provider in the Amazon Cognito identity pool configuration. Login providers allow your game's players to log in using their social network identity, such as Facebook, or using their Amazon user identity. For more information, see Controlling Access to Resources.

In addition to the Common Arguments, the login-provider update command accepts the following arguments:

  • --provider {provider-name}

    Required. The name of the updated provider. The name must be amazon, google or facebook, or, if you are using a generic OpenID provider, the name that you chose when the provider was added.

  • --app-id {application-id}

    Optional. The application ID from your login provider (this is usually different from your client ID).

  • --client-id {client-id}

    Optional. The unique application client ID for the login provider.

  • --client-secret {client-secret}

    Optional. The secret key to use with your login provider.

  • --redirect-uri {redirect-uri}

    Optional. The redirect URI to use with your login provider.

  • --provider-uri {provider-uri}

    Optional. The URI for a generic open id connect provider. This argument is used only for generic OpenID providers.

  • --provider-port {provider-port}

    Optional. The port the provider listens on for the provider's API. This argument is used only for generic OpenID providers.

  • --provider-path {provider-path}

    Optional. The path portion of the provider's URI. This argument is used only for generic OpenID providers.

    The login-provider update command saves its configuration in a /player-access/auth-settings.json object in the project's configuration bucket so that the PlayerAccessTokenExchange Lambda function can access it.

    Note

    You must run lmbr_aws project upload after running this command so that the PlayerAccessIdentityPool configuration is updated to reflect the change.

mappings list

Show the logical to physical resource name mappings.

Example output:

Copy
Name Type Id --------------------------------------- --------------------------- ---------------------------------------------------------------- HelloWorld.SayHello AWS::Lambda::Function foo-hw-Development-ZDLXUB7FKR94-HelloWo-SayHello-1FADMFNE5M1CO PlayerAccessIdentityPool Custom::CognitoIdentityPool us-east-2:108f6d6a-f929-4212-9947-a03269b9582e PlayerLoginIdentityPool Custom::CognitoIdentityPool us-east-2:3020e175-0ddd-4860-8dad-1db57162cbb2 PlayerAccessTokenExchange AWS::Lambda::Function foo-hw-PlayerAccessTokenExchange-1BG6JJ94IZAUV account_id Configuration <ACCOUNTID> region Configuration us-east-2

mappings update

Update the friendly name to physical resource ID mappings to reflect the current default deployment or the release deployment.

In addition to the Common Arguments, the mappings update command accepts the following arguments:

  • --release

    Optional. Causes the release mappings to be updated. By default, only the mappings used when launching the game from inside the editor are updated.

    The command looks in the resource-template.json file for Metadata.CloudCanvas.PlayerAccess properties on resource definitions. It then queries AWS CloudFormation for the physical names of those resources in the current default deployment. If the --release argument is specified, the release deployment is queried.

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. Exports a mapping file for the specified deployment to the {project_directory}\Config directory in the format {deployment-name}.awsLogicalMappings.json.

    When you run a game launcher such as the one at dev\Bin64\SamplesProjectLauncher.exe, you can choose the mapping to use by using the -cc_override_resource_map argument. For more information, see Selecting a Deployment with a PC Launcher.

parameter clear

Clears the specified parameter configuration for your project. The project must be initialized (a project stack must have been created) before you can clear parameters.

In addition to the Common Arguments, the parameter clear command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. Clears the parameter value for the specified deployment. {deployment-name} can be *, in which case the parameter value used for all deployments that do not override the value is cleared. If omitted, the parameter value is cleared for all deployments, including *.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Optional. Clears the parameter value for the specified resource-group. {resource-group-name} can be *, in which case the parameter value used for all resource groups that do not override the value is cleared. If omitted, the parameter value is cleared for all resource groups, including *.

  • --parameter {parameter-name} or -p {parameter-name}

    Required. The parameter to clear.

parameter list

Lists the parameters currently configured for your project. The project must be initialized (a project stack must have been created) before you can list parameters.

In addition to the Common Arguments, the parameter list command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Required. Limits the list to the specified deployment. {deployment-name} can be *, in which case parameters that apply to all deployments are listed.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. Limits the list to the specified resource group. {resource-group-name} can be *, in which case parameters that apply to all resource groups are listed.

  • --parameter {parameter-name} or -p {parameter-name}

    Optional. Limits the list to the specified parameter.

parameter set

Sets parameter configuration for your project. The project must be initialized (a project stack must have been created) before you can set parameters.

In addition to the Common Arguments, the parameter set command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Required. Sets the parameter value for the specified deployment. {deployment-name} can be *, in which case the parameter value is used for all deployments that do not override the value.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. Sets the parameter value for the specified resource group. {resource-group-name} can be *, in which case the parameter value is used for all resource groups that do not override the value.

  • --parameter {parameter-name} or -p {parameter-name}

    Required. Specifies the parameter whose value will be set.

  • --value {parameter-value} or -v {parameter-value}

    Required. Specifies the value to set.

profile add

Add an AWS profile to the AWS command line tool configuration.

In addition to the Common Arguments, the profile add command accepts the following arguments:

  • --aws-access-key{accesskey}

    Required. The AWS access key associated with the added profile.

  • --aws-secret-key{secretkey}

    Required. The AWS secret key associated with the added profile.

  • --profile {profile-name} or -P {profile-name}

    Required. The name of the AWS profile to add.

  • --make-default

    Optional. Make the new profile the default profile.

profile default

Set, clear, or show the default profile in the AWS command line tool configuration.

In addition to the Common Arguments, the profile default command accepts the following arguments:

  • --set {deploymentname}

    Optional. Set the default profile to the provided deployment name.

  • --clear

    Optional. Clear the default profile.

  • --show

    Optional. Show the default profile.

profile list

List the AWS profiles that have been configured.

profile remove

Remove an AWS profile from the AWS command line tool configuration.

In addition to the Common Arguments, the profile remove command accepts the following argument:

  • --profile {profile-name} or -P {profile-name}

    Required. The name of the AWS profile to remove.

profile rename

Rename an AWS profile in the AWS command line tool configuration.

In addition to the Common Arguments, the profile rename command accepts the following arguments:

  • --old {old-profile-name}

    Required. The name of the AWS profile to change.

  • --new {new-profile-name}

    Required. The new name of the AWS profile.

profile update

Update an AWS profile.

In addition to the Common Arguments, the profile update command accepts the following arguments:

  • --aws-access-key{accesskey}

    Optional. The AWS access key associated with the updated profile. The default is to not change the AWS access key associated with the profile.

  • --aws-secret-key{secretkey}

    Optional. The AWS secret key associated with the updated profile. The default is to not change the AWS secret key associated with the profile.

  • --profile {profilename} or -P {profile-name}

    Required. The name of the AWS profile to update.

Note

To make an existing profile the default profile, use the profile default command.

project create

Initialize Cloud Canvas resource management for a Lumberyard project. This includes creating a set of default Resource Definitions in the dev\{game}\AWS directory and a AWS CloudFormation stack that contains the resources that the Cloud Canvas resource manager uses to manage your game resources.

In addition to the Common Arguments, the project create command accepts the following arguments:

  • --stack {stack-name}

    Optional. The name used for the project's AWS CloudFormation stack. The default is the name of the {game} directory.

  • --confirm-aws-usage or -C

    Optional. Confirms that you know this command will create AWS resources for which you may be charged and that it may perform actions that can affect permissions in your AWS account. Specify this argument to disable the related confirmation prompt.

  • --enable-capability {capability} [{capability} ...]

    Optional. A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this argument. Possible values include CAPABILITY_IAM.

  • --files-only

    Optional. Writes the default configuration data to the {game}\AWS directory and exits. The directory must be empty or must not exist.

  • --region {region}

    Required. The AWS region in which the project stack will be created.

    Note

    The region argument can be used only with the project create and resource-importer list-importable-resources commands.

How project create works

  1. The project create command creates the project's AWS CloudFormation stack using a bootstrap template that defines only the Configuration Bucket resource.

  2. The project-template.json file and the zipped up contents of the project-code subdirectory are uploaded to the Configuration Bucket.

  3. An AWS CloudFormation stack update operation is performed by using the uploaded project-template.json file. The project-code .zip file is used to create the Lambda function resources defined by the project-template.json file.

Note

  • If the {root}\{game}\AWS directory is empty or does not exist, project create creates the directory if necessary and copies the contents of the dev\Tools\lmbr_aws\AWSResourceManager\default-project-content directory to that directory.

  • project create fails if a stack with the specified name already exists in the configured AWS account and region. In this case you can use the --stack argument to specify a different name for the project stack.

  • project create fails if the dev\{game}\AWS\local-project-settings.json file has a non-empty ProjectStackId property. Initially, the ProjectStackId property is not present in the local-project-settings.json file. After the project stack is created in step 1, the ProjectStackId property is written to the file and is the project's AWS CloudFormation stack ID .

  • If the stack update process in step 2 fails on the first attempt, you can retry by using the project upload command.

project create-extension-template

Creates an extension template for adding project, deployment, or deployment access resources that complement the existing project-template.json, deployment-template.json, or deployment-access-template.json files.

In addition to the Common Arguments, the project create-extension-template command accepts the following arguments:

  • --project

    Optional. Creates a project-template-extensions.json file in the project directory.

  • --deployment

    Optional. Creates a deployment-template-extensions.json file in the project directory.

  • --deployment-access

    Optional. Creates a deployment-access-template-extensions.json file in the project directory.

project delete

Delete the AWS CloudFormation stack that contains your project's resources. You must delete all of the project's deployments before deleting the project stack. After deleting the project stack, you must create a new project stack before you can use AWS CloudFormation resource manager for your project.

In addition to the Common Arguments, the project delete command accepts the following argument:

  • --confirm-resource-deletion

    Optional. Confirms your acknowledgement and approval that the operation will delete resources permanently. If this argument is not specified, you will be prompted to confirm completion of the operation. Specify this argument to disable the related confirmation prompt.

    AWS CloudFormation cannot delete stacks that define Amazon S3 buckets that contain data. To allow project stacks to be deleted, the project-template.json file specifies a DeletionPolicy of Retain for the configuration bucket. This causes AWS CloudFormation to not delete the bucket when the project stack is deleted. After the project stack has been deleted, the command removes all the objects from the configuration bucket and then deletes the bucket.

project list-resources

List all of the resources associated with the project.

In addition to the Common Arguments, the project list-resources command accepts the following argument:

  • --stack-id {stackid}

    Optional. The ARN of the stack to list resources for. Defaults to project, deployment, or resource group ID as determined by the --deployment and --resource-group arguments.

project update, project upload

Update the project's AWS CloudFormation stack. project upload can be used instead of project update.

In addition to the Common Arguments, the project update command accepts the following arguments:

  • --confirm-aws-usage or -C

    Optional. Confirms that you know this command will create AWS resources for which you may be charged and that it may perform actions that can affect permission in your AWS account. Specify this argument to disable the related confirmation prompt.

  • --confirm-resource-deletion

    Optional. If the operation will delete resources permanently, confirms your acknowledgement and approval. If this argument is not specified, you are prompted to confirm completion of the operation. Specify this argument to disable the related confirmation prompt.

  • --enable-capability {capability} [{capability} ...]

    Optional. A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this argument. Possible values include CAPABILITY_IAM.

How project update works

  1. The project-template.json file and the zipped up contents of the project-code subdirectory are uploaded to the Configuration Bucket.

  2. An AWS CloudFormation stack update operation is performed by using the uploaded project-template.json file. The project-code.zip file is used when creating the Lambda function resources defined by the templates.

Note

The project update command fails if the dev\{game}\AWS\local-project-settings.json file does not exist or does not have a valid ProjectStackId property.

project update-code

Updates the code for a project.

In addition to the Common Arguments, the project update-code command accepts the following argument:

  • --confirm-replacement

    Optional. Confirm that it is OK to replace existing files. Specify this argument to disable the related confirmation prompt.

project update-framework-version

Updates the Cloud Gem framework version for a project.

In addition to the Common Arguments, the project update-code command accepts the following arguments:

  • --confirm-aws-usage or -C

    Optional. Confirms that you know that the deployment create command will create AWS resources for which you may be charged and that may perform actions that can affect permissions in your AWS account. Specify this argument to disable the related confirmation prompt.

  • --confirm-resource-deletion

    Optional. Acknowledges that the command will permanently delete the resources belonging to the specified deployment. If not specified, the user is prompted to confirm the deletion.

  • --confirm-security-change

    Optional. Confirms that you know that this command may make security-related changes. Specify this argument to disable the related confirmation prompt.

  • --enable-capability{capability}

    Optional. A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this argument. Possible values include: CAPABILITY_IAM.

For more information, see Applying Framework Updates to a Project.

resource-group add

Note

The functionality of this command has changed in Lumberyard 1.11. This command is deprecated in favor of the resource-group enable and cloud-gem create commands. As of Lumberyard 1.11, project local resource groups are deprecated in favor of cloud gems. Because cloud gems are reusable, we recommend that you use them instead of local resource groups.

As of Lumberyard 1.11, the resource-group add command has the following behavior:

  • If the resource group specified in the --resource-group parameter exists but is disabled, the resource group is enabled. This is the equivalent of the lmbr_aws resource-group enable command.

  • If the resource group does not exist, the lmbr_aws cloud-gem create command is called to create a new resource group in a cloud gem. The name of the cloud gem is specified by the --resource-group {resource-group-name} parameter.

    • By default, the new gem has no resources. This corresponds to the cloud-gem create command's --initial-content no-resources option.

    • If the --include-example-resources option is specified, the equivalent of the cloud-gem create command's --initial-content api-lambda-dynamodb option is called.

In addition to the Common Arguments, the resource-group add command accepts the following arguments:

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. The name of an existing resource group to enable. If no resource group with the specified name exists, specifies the name of the cloud gem and resource group to be created.

  • --include-example-resources

    Optional. The equivalent of the --initial-content api-lambda-dynamodb option of the cloud-gem create command.

resource-group disable

Disable a resource group for debugging. This command is new in Lumberyard 1.11.

In addition to the Common Arguments, the resource-group disable command accepts the following argument:

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. The name of the resource group to disable.

By default, when a cloud gem is enabled for a project, all its resource groups are enabled. Disabling a resource group has the following consequences:

  • When a deployment is created, the resources that the disabled resource group defines are not created in AWS.

  • When a deployment is updated, the resources that were defined by the disabled resource group are removed.

  • The resource group is added to a list of disabled resource groups in the project's local-project-settings.json file.

Note

Prior to Lumberyard 1.11, the local-project-settings.json file kept a list of enabled resource groups. By default, all of a cloud gem's resource groups are enabled when the cloud gem is enabled. Therefore, listing only the disabled resource groups makes it easier to identify them.

Usually it is better to disable the cloud gem that provides a resource group than to disable the resource group itself. Therefore, we recommend that you use the resource-group disable command only for debugging or testing. To reenable a resource group, you can use the lmbr_aws resource-group enable command.

resource-group enable

Enable a resource group. This command is new in Lumberyard 1.11.

In addition to the Common Arguments, the resource-group disable command accepts the following argument:

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. The name of the resource group to enable.

resource-group list

List all the resource groups found in the local deployment template and in the selected deployment in AWS.

In addition to the Common Arguments, the resource-group list command accepts the following argument:

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of the deployment to list resource groups for. If not given, the default deployment is used.

Example output:

Copy
Name Status Reason Timestamp Id -------------- --------------- ------------------------------------------------------------------------------- ----------------- -------------------------------------------------------------------------------------------------------------------------------------------------- AnotherResourceGroup CREATE_PENDING Resource is defined in the local deployment template but does not exist in AWS. HelloWorld CREATE_COMPLETE 03/04/16 18:42:57 arn:aws:cloudformation:us-east-2:<ACCOUNTID>:stack/foo-hw-Development-ZDLXUB7FKR94-HelloWorld-WSGZ15EUWX52/9b909d20-e238-11e5-a98d-50fae987c09a

resource-group list-resources

List all of the resources associated with the project.

In addition to the Common Arguments, the resource-group list-resources command accepts the following arguments:

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of the deployment to list resources for. If not specified, lists all the project's resources.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Optional. The name of the resource group to list resources for. If specified, deployment must also be specified. If not specified, all deployment or project resources are listed.

resource-group remove

Note

The functionality of this command has changed in Lumberyard 1.11. This command is deprecated in favor of the cloud-gem disable and resource-group disable commands.

As of Lumberyard 1.11, the resource-group remove command has the following behavior:

  • If the resource group specified in the --resource-group parameter is provided by a cloud gem, disables the cloud gem. This is the equivalent of the lmbr_aws cloud-gem disable command.

  • If the resource group is not provided by a cloud gem, disables the resource group. This is the equivalent of the lmbr_aws resource-group disable command.

In addition to the Common Arguments, the resource-group remove command accepts the following argument:

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. The name of the resource group or cloud gem to be disabled.

resource-group upload-resources (upload, update)

Update a resource group's AWS CloudFormation stack in a deployment. resource-group upload or resource-group update can be used instead of resource-group upload-resources.

In addition to the Common Arguments, the resource-group upload command accepts the following arguments:

  • --confirm-aws-usage or -C

    Optional. Confirms that you know this command will create AWS resources for which you may be charged and that it may perform actions that can affect permissions in your AWS account. Specify this argument to disable the related confirmation prompt.

  • --confirm-resource-deletion

    Optional. If the operation will delete resources permanently, confirms your acknowledgement and approval. Specify this argument to disable the related confirmation prompt.

  • --confirm-security-change

    Optional. Confirms that you know that this command may make security-related changes. Specify this argument to disable the related confirmation prompt.

  • --deployment {deployment-name} or -d {deployment-name}

    Optional. The name of the deployment to update. If not specified, the default deployment is updated.

  • --resource-group {resource-group-name}, or -r {resource-group-name}

    Required. The name of the resource group to update. If not specified, all resource groups in the deployment are updated.

resource-importer import-resource

Import a resource to a resource group.

In addition to the Common Arguments, the resource-importer import-resource command accepts the following arguments:

  • --type {dynamodb|s3|lambda|sns|sqs}

    Optional. The type of the AWS resource to import. Choose from dynamodb, s3, lambda, sns or sqs.

  • --arn ARN

    Required. The ARN of the AWS resource to import.

  • --resource-name {resource-name}

    Required. The name of the resource to import.

  • --resource-group {resource-group-name} or -r {resource-group-name}

    Required. The name of the resource group to import.

  • --download

    Optional. If specified, downloads the contents of the Amazon S3 bucket.

resource-importer list-importable-resources

List all supported resources currently existing on AWS.

In addition to the Common Arguments, the resource-importer list-importable-resources command accepts the following arguments:

  • --type {dynamodb|s3|lambda|sns|sqs}

    Required. The type of the AWS resource to list. Choose from dynamodb, s3, lambda, sns or sqs.

  • --region {region}

    Optional. The AWS region of the resources. The default value is the region of the project stack, if it exists.

    Note

    The region argument can be used only with the resource-importer list-importable-resources and project create commands.