기타 애플리케이션 파라미터 구성 - AWS SDK for .NET

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기타 애플리케이션 파라미터 구성

참고

이 항목의 정보는 .NET Framework를 기반으로 하는 프로젝트에만 해당됩니다. .NET Core 기반 프로젝트에는 기본적으로 App.configWeb.config 파일이 표시되지 않습니다.

구성할 수 있는 애플리케이션 파라미터는 여러 가지입니다.

이 파라미터들은 애플리케이션의 App.config 또는 Web.config 파일에서 구성할 수 있습니다. AWS SDK for .NET API에서 이러한 파라미터를 구성할 수도 있지만, 애플리케이션의 .config 파일을 사용하는 것이 좋습니다. 여기에 두 방식이 모두 설명되어 있습니다.

이 주제 후반부에 설명된 <aws> 요소 사용에 대한 자세한 내용은 AWS SDK for .NET에 대한 구성 파일 참조를 참조하세요.

AWSLogging

SDK에서 이벤트를 로깅하는 방식을 구성합니다. 예를 들면 권장할 만한 방식은 다음과 같이 <logging> 요소의 하위 요소인 <aws> 요소를 사용하는 것입니다.

<aws> <logging logTo="Log4Net"/> </aws>

대안:

<add key="AWSLogging" value="log4net"/>

가능한 값은 다음과 같습니다.

None

이벤트 로깅을 해제합니다. 이 값이 기본값입니다.

log4net

log4net을 사용하여 로깅합니다.

SystemDiagnostics

System.Diagnostics 클래스를 사용하여 로깅합니다.

logTo 속성에 대해 쉼표로 구분된 여러 값을 설정할 수 있습니다. 다음 예제에서는 log4net 파일에서 System.Diagnostics.config 로깅을 설정합니다.

<logging logTo="Log4Net, SystemDiagnostics"/>

대안:

<add key="AWSLogging" value="log4net, SystemDiagnostics"/>

또는 AWS SDK for .NET API를 사용하여 다음과 같이 LoggingOptions 열거의 값을 결합하고 AWSConfigs.Logging 속성을 설정합니다.

AWSConfigs.Logging = LoggingOptions.Log4Net | LoggingOptions.SystemDiagnostics;

이 설정에 대한 변경 사항은 새로운 AWS 클라이언트 인스턴스에만 적용됩니다.

AWSLogMetrics

SDK가 성능 측정치를 로깅해야 하는지 여부를 지정합니다. .config 파일에서 측정치 로깅 구성을 설정하려면 logMetrics 요소의 하위 요소인 <logging> 요소에서 <aws> 속성 값을 설정합니다.

<aws> <logging logMetrics="true"/> </aws>

또는 다음과 같이 AWSLogMetrics 섹션에서 <appSettings> 키를 설정할 수 있습니다.

<add key="AWSLogMetrics" value="true">

또는 AWS SDK for .NET API를 사용하여 지표 로깅을 설정하려면 다음과 같이 AWSConfigs.LogMetrics 속성을 설정합니다.

AWSConfigs.LogMetrics = true;

이 설정에서는 모든 클라이언트/구성에 대해 기본값인 LogMetrics 속성을 구성합니다. 이 설정에 대한 변경 사항은 새로운 AWS 클라이언트 인스턴스에만 적용됩니다.

AWSRegion

리전을 명시적으로 지정하지 않은 클라이언트에 기본 AWS 리전을 구성합니다. .config 파일에서 리전을 설정할 때 권장할 만한 방식은 다음과 같이 region 요소에서 aws 속성 값을 설정하는 것입니다.

<aws region="us-west-2"/>

또는 다음과 같이 <appSettings> 섹션에서 AWSRegion 키를 설정할 수 있습니다.

<add key="AWSRegion" value="us-west-2"/>

또는 AWS SDK for .NET API를 사용하여 리전을 설정하려면 다음과 같이 AWSConfigs.AWSRegion 속성을 설정합니다.

AWSConfigs.AWSRegion = "us-west-2";

특정 리전에 대한 AWS 클라이언트를 생성하는 방법에 대한 자세한 내용은 AWS 리전 선택을 참조하세요. 이 설정에 대한 변경 사항은 새로운 AWS 클라이언트 인스턴스에만 적용됩니다.

AWSResponseLogging

SDK에서 서비스 응답을 로깅해야 할 경우에 구성. 가능한 값은 다음과 같습니다.

Never

서비스 응답을 로깅하지 않음. 이 값이 기본값입니다.

Always

서비스 응답을 항상 로깅.

OnError

오류가 발생할 때만 서비스 응답을 로깅.

.config 파일에서 서비스 로깅 구성을 설정하는 경우 권장할 만한 방식은 logResponses 요소의 하위 요소인 <logging> 요소에서 <aws> 속성 값을 설정하는 것입니다.

<aws> <logging logResponses="OnError"/> </aws>

또는 다음과 같이 <appSettings> 섹션에서 AWSResponseLogging 키를 설정할 수 있습니다.

<add key="AWSResponseLogging" value="OnError"/>

또는 AWS SDK for .NET API를 사용하여 서비스 로깅을 설정하려면 다음과 같이 AWSConfigs.ResponseLogging 속성을 ResponseLoggingOption 열거의 값 중 하나로 설정합니다.

AWSConfigs.ResponseLogging = ResponseLoggingOption.OnError;

이 설정의 변경 사항은 즉시 적용됩니다.

AWS.DynamoDBContext.TableNamePrefix

수동으로 구성되지 않은 경우 TableNamePrefix에서 사용할 기본 DynamoDBContext를 구성합니다.

.config 파일에서 테이블 이름 접두사를 설정하는 경우 권장할 만한 방식은 그 자체로 tableNamePrefix 요소의 하위 요소이자 <dynamoDBContext> 요소의 하위 요소인 <dynamoDB> 요소에서 <aws> 속성 값을 설정하는 것입니다.

<dynamoDBContext tableNamePrefix="Test-"/>

또는 다음과 같이 AWS.DynamoDBContext.TableNamePrefix 섹션에서 <appSettings> 키를 설정할 수 있습니다.

<add key="AWS.DynamoDBContext.TableNamePrefix" value="Test-"/>

또는 AWS SDK for .NET API를 사용하여 테이블 이름 접두사를 설정하려면 다음과 같이 AWSConfigs.DynamoDBContextTableNamePrefix 속성을 설정합니다.

AWSConfigs.DynamoDBContextTableNamePrefix = "Test-";

이 설정을 변경하면 DynamoDBContextConfigDynamoDBContext의 새로 생성된 인스턴스에만 적용됩니다.

AWS.S3.UseSignatureVersion4

Amazon S3 클라이언트가 서명 버전 4 서명을 요청에 사용해야 하는지 여부를 구성합니다.

.config 파일에서 Amazon S3의 서명 버전 4 서명을 설정하려면 <aws> 요소의 하위 요소인 <s3> 요소의 useSignatureVersion4 속성을 설정하는 것이 좋습니다.

<aws> <s3 useSignatureVersion4="true"/> </aws>

또는 다음과 같이 <appSettings> 섹션에서 AWS.S3.UseSignatureVersion4 키를 true로 설정할 수 있습니다.

<add key="AWS.S3.UseSignatureVersion4" value="true"/>

또는 AWS SDK for .NET API를 사용하여 서명 버전 4 서명을 설정하려면 다음과 같이 AWSConfigs.S3UseSignatureVersion4 속성을 true로 설정합니다.

AWSConfigs.S3UseSignatureVersion4 = true;

이 설정은 false로 기본 설정되어 있으나 어떤 경우 또는 일부 리전에서는 서명 버전 4로 기본 설정할 수도 있습니다. 설정이 true인 경우 모든 요청에 서명 버전 4를 사용합니다. 이 설정에 대한 변경 사항은 새로운 Amazon S3 클라이언트 인스턴스에만 적용됩니다.

AWSEndpointDefinition

SDK에서 리전 및 엔드포인트를 정의하는 사용자 지정 구성 파일을 사용해야 하는지 여부를 구성합니다.

.config 파일에서 엔드포인트 정의 파일을 설정하려면 endpointDefinition 요소에서 <aws> 속성 값을 설정하는 것이 좋습니다.

<aws endpointDefinition="c:\config\endpoints.json"/>

또는 다음과 같이 <appSettings> 섹션에서 AWSEndpointDefinition 키를 설정할 수 있습니다.

<add key="AWSEndpointDefinition" value="c:\config\endpoints.json"/>

또는 AWS SDK for .NET API를 사용하여 엔드포인트 정의 파일을 설정하려면 다음과 같이 AWSConfigs.EndpointDefinition 속성을 설정합니다.

AWSConfigs.EndpointDefinition = @"c:\config\endpoints.json";

파일 이름이 제공되지 않는 경우 사용자 지정 구성 파일은 사용되지 않습니다. 이 설정에 대한 변경 사항은 새로운 AWS 클라이언트 인스턴스에만 적용됩니다. endpoint.json 파일은 https://github.com/aws/aws-sdk-net/blob/master/sdk/src/Core/endpoints.json에서 사용할 수 있습니다.

AWS 서비스 생성 엔드포인트

일부 AWS 서비스에서는 리전 엔드포인트를 사용하는 대신에 자체 엔드포인트를 생성합니다. 이러한 서비스의 클라이언트는 해당 서비스 및 리소스에 고유한 서비스 URL을 사용합니다. 이러한 서비스의 두 가지 예로 Amazon CloudSearch와 AWS IoT가 있습니다. 다음 예제에서는 그러한 서비스에 대한 엔드포인트를 얻는 방법을 보여줍니다.

Amazon CloudSearch 엔드포인트 예제

Amazon CloudSearch 클라이언트는 Amazon CloudSearch 구성 서비스에 액세스하는 데 사용됩니다. Amazon CloudSearch 구성 서비스를 사용하여 검색 도메인을 생성, 구성 및 관리합니다. 검색 도메인을 생성하려면 CreateDomainRequest 객체를 생성하고 DomainName 속성을 제공합니다. 요청 객체를 사용하여 AmazonCloudSearchClient 객체를 생성합니다. CreateDomain 메서드를 호출합니다. 이 호출에서 반환되는 CreateDomainResponse 객체에는 DocServiceSearchService 엔드포인트가 모두 있는 DomainStatus 속성이 포함되어 있습니다. AmazonCloudSearchDomainConfig 객체를 생성하고 이를 사용하여 AmazonCloudSearchDomainClient 클래스의 DocServiceSearchService 인스턴스를 초기화합니다.

// Create domain and retrieve DocService and SearchService endpoints DomainStatus domainStatus; using (var searchClient = new AmazonCloudSearchClient()) { var request = new CreateDomainRequest { DomainName = "testdomain" }; domainStatus = searchClient.CreateDomain(request).DomainStatus; Console.WriteLine(domainStatus.DomainName + " created"); } // Test the DocService endpoint var docServiceConfig = new AmazonCloudSearchDomainConfig { ServiceURL = "https://" + domainStatus.DocService.Endpoint }; using (var domainDocService = new AmazonCloudSearchDomainClient(docServiceConfig)) { Console.WriteLine("Amazon CloudSearchDomain DocService client instantiated using the DocService endpoint"); Console.WriteLine("DocService endpoint = " + domainStatus.DocService.Endpoint); using (var docStream = new FileStream(@"C:\doc_source\XMLFile4.xml", FileMode.Open)) { var upload = new UploadDocumentsRequest { ContentType = ContentType.ApplicationXml, Documents = docStream }; domainDocService.UploadDocuments(upload); } } // Test the SearchService endpoint var searchServiceConfig = new AmazonCloudSearchDomainConfig { ServiceURL = "https://" + domainStatus.SearchService.Endpoint }; using (var domainSearchService = new AmazonCloudSearchDomainClient(searchServiceConfig)) { Console.WriteLine("Amazon CloudSearchDomain SearchService client instantiated using the SearchService endpoint"); Console.WriteLine("SearchService endpoint = " + domainStatus.SearchService.Endpoint); var searchReq = new SearchRequest { Query = "Gambardella", Sort = "_score desc", QueryParser = QueryParser.Simple }; var searchResp = domainSearchService.Search(searchReq); }

AWS IoT 엔드포인트 예제

AWS IoT에 대한 엔드포인트를 얻으려면 AmazonIoTClient 객체를 생성하고 DescribeEndPoint 메서드를 호출합니다. 반환되는 DescribeEndPointResponse 객체에는 EndpointAddress가 포함되어 있습니다. AmazonIotDataConfig 객체를 생성하고 ServiceURL 속성을 설정한 다음 이 객체를 사용하여 AmazonIotDataClient 클래스를 인스턴스화합니다.

string iotEndpointAddress; using (var iotClient = new AmazonIoTClient()) { var endPointResponse = iotClient.DescribeEndpoint(); iotEndpointAddress = endPointResponse.EndpointAddress; } var ioTdocServiceConfig = new AmazonIotDataConfig { ServiceURL = "https://" + iotEndpointAddress }; using (var dataClient = new AmazonIotDataClient(ioTdocServiceConfig)) { Console.WriteLine("AWS IoTData client instantiated using the endpoint from the IotClient"); }