AWS SDK 예제 GitHub 리포지토리에 더 많은 AWS문서 SDK 예제가 있습니다.
AWS SDK를 사용한 CloudWatch 코드 예제
다음 코드 예제에서는 AWS 소프트웨어 개발 키트(SDK)에서 Amazon CloudWatch를 사용한 방법을 보여줍니다.
기본 사항은 서비스 내에서 필수 작업을 수행하는 방법을 보여주는 코드 예제입니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.
시나리오는 동일한 서비스 내에서 또는 다른 AWS 서비스와 결합된 상태에서 여러 함수를 호출하여 특정 태스크를 수행하는 방법을 보여주는 코드 예제입니다.
시작
다음 코드 예제에서는 CloudWatch를 사용하여 시작하는 방법을 보여 줍니다.
- .NET
-
- SDK for .NET(v4)
-
GitHub에 더 많은 내용이 있습니다. AWS코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.
using Amazon.CloudWatch;
using Amazon.CloudWatch.Model;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace CloudWatchActions;
public static class HelloCloudWatch
{
static async Task Main(string[] args)
{
// Use the AWS .NET Core Setup package to set up dependency injection for the Amazon CloudWatch service.
// Use your AWS profile name, or leave it blank to use the default profile.
using var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((_, services) =>
services.AddAWSService<IAmazonCloudWatch>()
).Build();
// Now the client is available for injection.
var cloudWatchClient = host.Services.GetRequiredService<IAmazonCloudWatch>();
// You can use await and any of the async methods to get a response.
var metricNamespace = "AWS/Billing";
var response = await cloudWatchClient.ListMetricsAsync(new ListMetricsRequest
{
Namespace = metricNamespace
});
Console.WriteLine($"Hello Amazon CloudWatch! Following are some metrics available in the {metricNamespace} namespace:");
Console.WriteLine();
if (response.Metrics != null)
{
foreach (var metric in response.Metrics.Take(5))
{
Console.WriteLine($"\tMetric: {metric.MetricName}");
Console.WriteLine($"\tNamespace: {metric.Namespace}");
Console.WriteLine(
$"\tDimensions: {string.Join(", ", metric.Dimensions.Select(m => $"{m.Name}:{m.Value}"))}");
Console.WriteLine();
}
}
}
}
- Java
-
- SDK for Java 2.x
-
GitHub에 더 많은 내용이 있습니다. AWS코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
import software.amazon.awssdk.services.cloudwatch.model.CloudWatchException;
import software.amazon.awssdk.services.cloudwatch.model.ListMetricsRequest;
import software.amazon.awssdk.services.cloudwatch.paginators.ListMetricsIterable;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class HelloService {
public static void main(String[] args) {
final String usage = """
Usage:
<namespace>\s
Where:
namespace - The namespace to filter against (for example, AWS/EC2).\s
""";
if (args.length != 1) {
System.out.println(usage);
System.exit(1);
}
String namespace = args[0];
Region region = Region.US_EAST_1;
CloudWatchClient cw = CloudWatchClient.builder()
.region(region)
.build();
listMets(cw, namespace);
cw.close();
}
public static void listMets(CloudWatchClient cw, String namespace) {
try {
ListMetricsRequest request = ListMetricsRequest.builder()
.namespace(namespace)
.build();
ListMetricsIterable listRes = cw.listMetricsPaginator(request);
listRes.stream()
.flatMap(r -> r.metrics().stream())
.forEach(metrics -> System.out.println(" Retrieved metric is: " + metrics.metricName()));
} catch (CloudWatchException e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
}
- Kotlin
-
- SDK for Kotlin
-
/**
Before running this Kotlin code example, set up your development environment,
including your credentials.
For more information, see the following documentation topic:
https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/setup.html
*/
suspend fun main(args: Array<String>) {
val usage = """
Usage:
<namespace>
Where:
namespace - The namespace to filter against (for example, AWS/EC2).
"""
if (args.size != 1) {
println(usage)
exitProcess(0)
}
val namespace = args[0]
listAllMets(namespace)
}
suspend fun listAllMets(namespaceVal: String?) {
val request =
ListMetricsRequest {
namespace = namespaceVal
}
CloudWatchClient.fromEnvironment { region = "us-east-1" }.use { cwClient ->
cwClient
.listMetricsPaginated(request)
.transform { it.metrics?.forEach { obj -> emit(obj) } }
.collect { obj ->
println("Name is ${obj.metricName}")
println("Namespace is ${obj.namespace}")
}
}
}