Hay más ejemplos de AWS SDK disponibles en el repositorio de GitHub de ejemplos de AWS SDK de documentos.
Ejemplos de código de AWS Control Tower con un AWS SDK
Los siguientes ejemplos de código muestran cómo utilizar AWS Control Tower con un kit de desarrollo de software (SDK) de AWS.
Los conceptos básicos son ejemplos de código que muestran cómo realizar las operaciones esenciales dentro de un servicio.
Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.
Introducción
En los siguientes ejemplos de código se muestra cómo empezar a utilizar AWS Control Tower.
- .NET
-
- SDK para .NET (v4)
-
using Amazon.ControlTower;
using Amazon.ControlTower.Model;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Console;
using Microsoft.Extensions.Logging.Debug;
using LogLevel = Microsoft.Extensions.Logging.LogLevel;
namespace ControlTowerActions;
/// <summary>
/// A class that introduces the AWS Control Tower by listing the
/// available baselines for the account.
/// </summary>
public class HelloControlTower
{
private static ILogger logger = null!;
static async Task Main(string[] args)
{
// Set up dependency injection for AWS Control Tower.
using var host = Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
logging.AddFilter("System", LogLevel.Debug)
.AddFilter<DebugLoggerProvider>("Microsoft", LogLevel.Information)
.AddFilter<ConsoleLoggerProvider>("Microsoft", LogLevel.Trace))
.ConfigureServices((_, services) =>
services.AddAWSService<IAmazonControlTower>()
)
.Build();
logger = LoggerFactory.Create(builder => { builder.AddConsole(); })
.CreateLogger<HelloControlTower>();
var amazonClient = host.Services.GetRequiredService<IAmazonControlTower>();
Console.Clear();
Console.WriteLine("Hello, AWS Control Tower! Let's list available baselines:");
Console.WriteLine();
var baselines = new List<BaselineSummary>();
try
{
var baselinesPaginator = amazonClient.Paginators.ListBaselines(new ListBaselinesRequest());
await foreach (var response in baselinesPaginator.Responses)
{
baselines.AddRange(response.Baselines);
}
Console.WriteLine($"{baselines.Count} baseline(s) retrieved.");
foreach (var baseline in baselines)
{
Console.WriteLine($"\t{baseline.Name}");
}
}
catch (Amazon.ControlTower.Model.AccessDeniedException)
{
Console.WriteLine("Access denied. Please ensure you have the necessary permissions.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
- Python
-
- SDK para Python (Boto3)
-
import boto3
from typing import Any, List
def hello_controltower(controltower_client: Any) -> None:
"""
Use the AWS SDK for Python (Boto3) to create an AWS Control Tower client
and list all available baselines.
This example uses the default settings specified in your shared credentials
and config files.
:param controltower_client: A Boto3 AWS Control Tower Client object. This object wraps
the low-level AWS Control Tower service API.
"""
print("Hello, AWS Control Tower! Let's list available baselines:\n")
paginator = controltower_client.get_paginator("list_baselines")
page_iterator = paginator.paginate()
baseline_names: List[str] = []
try:
for page in page_iterator:
for baseline in page["baselines"]:
baseline_names.append(baseline["name"])
print(f"{len(baseline_names)} baseline(s) retrieved.")
for baseline_name in baseline_names:
print(f"\t{baseline_name}")
except controltower_client.exceptions.AccessDeniedException:
print("Access denied. Please ensure you have the necessary permissions.")
except Exception as e:
print(f"An error occurred: {str(e)}")
if __name__ == "__main__":
hello_controltower(boto3.client("controltower"))