如何在 C# 中的 App Config 文件中为 AWS AmazonSQSClient 设置 RegionEndPoint
How to set RegionEndPoint for AWS AmazonSQSClient in C# on the App Config file
我已经在我的应用程序配置中声明了一个 RegionEndpoint,就像这样
<add key="AWSRegion" value="EUWest1" xdt:Transform="Insert"/>
在我的程序中,我尝试调用这个 AWSRegion
private static string RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
所以当我声明我的 SQSClient 时,我得到一个错误,无法从字符串转换为 RegionEndPoint
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
我已经尝试在这里理解这个问题 How to set the EndPoint / Region for the C# .NET SDK : EC2Client?
但它适用于 EC2Client,所以它似乎不适合我。
我也试过像这样使用 AWS SDK 声明区域端点
private static RegionEndpoint RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
我也收到一个错误,提示无法从类型字符串隐式转换为 Amazon.RegionEndpoint
因此,如果有办法在配置文件中添加 RegionEndPoint 并在 SQSClient 中使用它,请帮助我。
ConfigurationManager.AppSettings["AWSRegion"]
returns 字符串值 EUWest1
但 RegionEndpoint
是 class.
AmazonSQSClient
constructo 期望 class RegionEndpoint
的实例作为第二个参数,但由于您传递的是字符串值,因此出现错误。
您可以使用以下方法从配置值中获取 RegionEndpoint
class 实例。
RegionEndpoint
class 有一个静态方法 GetBySystemName
。您需要将区域名称传递给此方法,它将 return RegionEndpoint
class.
的适当实例
但是为此您需要传递正确的区域名称。您需要将该值放入配置中。在您的情况下,配置值应为 eu-west-1
。配置值 EUWest1
在这里不起作用。
您可以找到AWS的所有有效区域名称here
<add key="AWSRegion" value="eu-west-1" xdt:Transform="Insert"/>
使用以上配置值,您可以使用以下代码获取基于它的区域。
private static RegionEndpoint RegionEndPoint =
RegionEndpoint.GetBySystemName(ConfigurationManager.AppSettings["AWSRegion"]);
以上代码将为您提供 EU (Ireland) Region
区域的 RegionEndPoint 实例,现在您可以将其用于 AmazonSQSClient
,如下所示。
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
这将帮助您解决您面临的问题。
我已经在我的应用程序配置中声明了一个 RegionEndpoint,就像这样
<add key="AWSRegion" value="EUWest1" xdt:Transform="Insert"/>
在我的程序中,我尝试调用这个 AWSRegion
private static string RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
所以当我声明我的 SQSClient 时,我得到一个错误,无法从字符串转换为 RegionEndPoint
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
我已经尝试在这里理解这个问题 How to set the EndPoint / Region for the C# .NET SDK : EC2Client?
但它适用于 EC2Client,所以它似乎不适合我。
我也试过像这样使用 AWS SDK 声明区域端点
private static RegionEndpoint RegionEndPoint = ConfigurationManager.AppSettings["AWSRegion"];
我也收到一个错误,提示无法从类型字符串隐式转换为 Amazon.RegionEndpoint
因此,如果有办法在配置文件中添加 RegionEndPoint 并在 SQSClient 中使用它,请帮助我。
ConfigurationManager.AppSettings["AWSRegion"]
returns 字符串值 EUWest1
但 RegionEndpoint
是 class.
AmazonSQSClient
constructo 期望 class RegionEndpoint
的实例作为第二个参数,但由于您传递的是字符串值,因此出现错误。
您可以使用以下方法从配置值中获取 RegionEndpoint
class 实例。
RegionEndpoint
class 有一个静态方法 GetBySystemName
。您需要将区域名称传递给此方法,它将 return RegionEndpoint
class.
但是为此您需要传递正确的区域名称。您需要将该值放入配置中。在您的情况下,配置值应为 eu-west-1
。配置值 EUWest1
在这里不起作用。
您可以找到AWS的所有有效区域名称here
<add key="AWSRegion" value="eu-west-1" xdt:Transform="Insert"/>
使用以上配置值,您可以使用以下代码获取基于它的区域。
private static RegionEndpoint RegionEndPoint =
RegionEndpoint.GetBySystemName(ConfigurationManager.AppSettings["AWSRegion"]);
以上代码将为您提供 EU (Ireland) Region
区域的 RegionEndPoint 实例,现在您可以将其用于 AmazonSQSClient
,如下所示。
var SQSClient = new AmazonSQSClient(credentials, RegionEndPoint);
这将帮助您解决您面临的问题。