繁体   English   中英

如何为 .NET 核心桌面应用程序创建 AWS 服务客户端 object

[英]How to create an AWS service client object for a .NET Core desktop app

我正在编写 .NET 5.0 中的应用程序以在桌面上运行。 它将查询 AWS CloudWatch 并下载日志条目。

我正在使用以下方法创建包含查询方法的 AWS 服务客户端。 但是,当程序进入CreateServiceClient()方法时,它会挂起一分钟,然后直接返回调用我的GetLogs()方法的方法,没有错误。

using Amazon.CloudWatchLogs;
using Amazon.CloudWatchLogs.Model;
using Amazon.Extensions.NETCore.Setup;
.
.
.
public async Task<GetQueryResultsResponse> GetLogs()
{ 
       AWSOptions awsOptions = new AWSOptions { Profile = "myprofile" };
       IAmazonCloudWatchLogs logs = awsOptions.CreateServiceClient<IAmazonCloudWatchLogs>();
       .
       .
       .

我有一个位于C:\Users\Username\.aws\credentials的凭据文件,其中包含内容

[myprofile]
aws_access_key_id = <myid>
aws_secret_access_key = <mykey>

我已验证凭据可用于 AWS CLI。 我错过了什么?

您没有使用最新的 .NET API。这是一个示例,说明如何使用AmazonCloudWatchLogsClient创建 Amazon CloudWatch 日志组。 该示例是使用适用于 .NET 版本 3.7 和 .NET Core 5.0 的 AWS SDK 创建的。

您应该为 .NET 使用 AWS SDK 的 3.0 版

更多例子在这里:

https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/do.netv3/CloudWatchLogs

namespace CreateLogGroupExample
{
    using System;
    using System.Threading.Tasks;
    using Amazon.CloudWatchLogs;
    using Amazon.CloudWatchLogs.Model;

    /// <summary>
    /// Shows how to create an Amazon CloudWatch Logs log group. The example
    /// was created using the AWS SDK for .NET version 3.7 and .NET Core 5.0.
    /// </summary>
    public class CreateLogGroup
    {
        // snippet-start:[CloudWatchLogs.dotnetv3.CreateLogGroupExample]
        public static async Task Main()
        {
            // This client object will be associated with the same AWS Region
            // as the default user on this system. If you need to use a
            // different AWS Region, pass it as a parameter to the client
            // constructor.
            var client = new AmazonCloudWatchLogsClient();

            string logGroupName = "cloudwatchlogs-example-loggroup";

            var request = new CreateLogGroupRequest
            {
                LogGroupName = logGroupName,
            };

            var response = await client.CreateLogGroupAsync(request);

            if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
            {
                Console.WriteLine($"Successfully create log group with ID: {logGroupName}.");
            }
            else
            {
                Console.WriteLine("Could not create log group.");
            }
        }

        // snippet-end:[CloudWatchLogs.dotnetv3.CreateLogGroupExample]
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM