Code examples for AWS CloudFormation using AWS SDKs - AWS SDK Code Examples

There are more AWS SDK examples available in the AWS Doc SDK Examples GitHub repo.

Code examples for AWS CloudFormation using AWS SDKs

The following code examples show you how to use AWS CloudFormation with an AWS software development kit (SDK).

Actions are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios and cross-service examples.

Cross-service examples are sample applications that work across multiple AWS services.

More resources

Get started

The following code example shows how to get started using AWS CloudFormation.


There's more on GitHub. Find the complete example and learn how to set up and run in the AWS Code Examples Repository.

using Amazon.CloudFormation; using Amazon.CloudFormation.Model; using Amazon.Runtime; namespace CloudFormationActions; public static class HelloCloudFormation { public static IAmazonCloudFormation _amazonCloudFormation; static async Task Main(string[] args) { // Create the CloudFormation client _amazonCloudFormation = new AmazonCloudFormationClient(); Console.WriteLine($"\nIn Region: {_amazonCloudFormation.Config.RegionEndpoint}"); // List the resources for each stack await ListResources(); } /// <summary> /// Method to list stack resources and other information. /// </summary> /// <returns>True if successful.</returns> public static async Task<bool> ListResources() { try { Console.WriteLine("Getting CloudFormation stack information..."); // Get all stacks using the stack paginator. var paginatorForDescribeStacks = _amazonCloudFormation.Paginators.DescribeStacks( new DescribeStacksRequest()); await foreach (Stack stack in paginatorForDescribeStacks.Stacks) { // Basic information for each stack Console.WriteLine("\n------------------------------------------------"); Console.WriteLine($"\nStack: {stack.StackName}"); Console.WriteLine($" Status: {stack.StackStatus.Value}"); Console.WriteLine($" Created: {stack.CreationTime}"); // The tags of each stack (etc.) if (stack.Tags.Count > 0) { Console.WriteLine(" Tags:"); foreach (Tag tag in stack.Tags) Console.WriteLine($" {tag.Key}, {tag.Value}"); } // The resources of each stack DescribeStackResourcesResponse responseDescribeResources = await _amazonCloudFormation.DescribeStackResourcesAsync( new DescribeStackResourcesRequest { StackName = stack.StackName }); if (responseDescribeResources.StackResources.Count > 0) { Console.WriteLine(" Resources:"); foreach (StackResource resource in responseDescribeResources .StackResources) Console.WriteLine( $" {resource.LogicalResourceId}: {resource.ResourceStatus}"); } } Console.WriteLine("\n------------------------------------------------"); return true; } catch (AmazonCloudFormationException ex) { Console.WriteLine("Unable to get stack information:\n" + ex.Message); return false; } catch (AmazonServiceException ex) { if (ex.Message.Contains("Unable to get IAM security credentials")) { Console.WriteLine(ex.Message); Console.WriteLine("If you are usnig SSO, be sure to install" + " the AWSSDK.SSO and AWSSDK.SSOOIDC packages."); } else { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } return false; } catch (ArgumentNullException ex) { if (ex.Message.Contains("Options property cannot be empty: ClientName")) { Console.WriteLine(ex.Message); Console.WriteLine("If you are using SSO, have you logged in?"); } else { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } return false; } } }