CloudFormation 使用 SDK for .NET (v4) 的示例 - AWS SDK for .NET (V4)

的版本 4 (V4) AWS SDK for .NET 已经发布!

有关重大更改和迁移应用程序的信息,请参阅迁移主题

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudFormation 使用 SDK for .NET (v4) 的示例

以下代码示例向您展示了如何通过使用 AWS SDK for .NET (v4) 来执行操作和实现常见场景。 CloudFormation

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

开始使用

以下代码示例展示了如何开始使用 CloudFormation。

SDK for .NET (v4)
注意

还有更多相关信息 GitHub。在 AWS 代码示例存储库中查找完整示例,了解如何进行设置和运行。

using Amazon.CloudFormation; using Amazon.CloudFormation.Model; using Amazon.Runtime; namespace CloudFormationActions; public static class HelloCloudFormation { public static IAmazonCloudFormation _amazonCloudFormation = null!; 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()); if (paginatorForDescribeStacks.Stacks != null) { 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 != null && 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 != null && 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; } }