AWS CloudFormation Command Line Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 51: Line 51:
  aws cloudformation get-template
  aws cloudformation get-template


=Organizatorium=
=Package=


  aws cloudformation package --template-file deployment-stack.yaml --s3-bucket $TARGET_BUCKET --output-template-file new-deployment-stack.yaml
  aws cloudformation package --template-file deployment-stack.yaml --s3-bucket ${TARGET_BUCKET} --output-template-file new-deployment-stack.yaml
 
The command packages the local artifacts (local paths) the CloudFormation template references. The command uploads local artifacts, such as source code for an AWS Lambda function or a Swagger file for an API Gateway REST API to an S3 bucket. The command returns a copy of the template, replacing references to local artifacts with the S3 location where the command uploaded the artifacts. Use this command to  quickly  upload  local  artifacts  that  might  be  required by your template. After you package your template's artifacts,  run the [[#Deploy|aws cloudformation deploy]] command to deploy the returned template.
 
=Deploy=
 
aws cloudformation deploy

Revision as of 19:43, 25 March 2019

Internal

Validate Templates

https://docs.aws.amazon.com/cli/latest/reference/cloudformation/validate-template.html
https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ValidateTemplate.html
aws cloudformation validate-template --template-body file://.../stack-template.yml

Create a Stack

aws cloudformation create-stack --stack-name stack-name --template-body file://.../stack-template.yml [--parameters ParameterKey=Parm1,ParameterValue=test1 ParameterKey=Parm2,ParameterValue=test2]

If the template is supposed to create IAM roles, the command line will fail with a message similar to "An error occurred (InsufficientCapabilitiesException) when calling the CreateStack operation: Requires capabilities : [CAPABILITY_NAMED_IAM]", unless the capability is explicitly provided on command line with:

aws cloudformation create-stack --capabilities CAPABILITY_NAMED_IAM ...

A stack can only be created once, a subsequent invocation of the 'create-stack' command will result in:

An error occurred (AlreadyExistsException) when calling the CreateStack operation: Stack [api-experiments] already exists

Update a Stack

Updating Stacks Directly
aws cloudformation update-stack --stack-name  stack-name --template-body file://.../stack-template.yml [--parameters ParameterKey=Parm1,ParameterValue=test1 ParameterKey=Parm2,ParameterValue=test2]

Updates a stack as specified in the template. After the call completes successfully, the stack update starts.

aws cloudformation update-stack --stack-name mystack --use-previous-template --parameters ...

Cancel an Update

Canceling a Stack Update
aws cloudformation cancel-update-stack

Delete a Stack

aws cloudformation delete-stack --stack-name stack-name

Describe a Stack

aws cloudformation describe-stacks

Obtaining the Template of an Existing Stack

This is useful when we want to apply an update, but we don't have the original template document.

aws cloudformation get-template

Package

aws cloudformation package --template-file deployment-stack.yaml --s3-bucket ${TARGET_BUCKET} --output-template-file new-deployment-stack.yaml

The command packages the local artifacts (local paths) the CloudFormation template references. The command uploads local artifacts, such as source code for an AWS Lambda function or a Swagger file for an API Gateway REST API to an S3 bucket. The command returns a copy of the template, replacing references to local artifacts with the S3 location where the command uploaded the artifacts. Use this command to quickly upload local artifacts that might be required by your template. After you package your template's artifacts, run the aws cloudformation deploy command to deploy the returned template.

Deploy

aws cloudformation deploy