第 4 版 (V4) 適用於 .NET 的 AWS SDK 已發行!
若要開始使用新版本的 SDK,請參閱 適用於 .NET 的 AWS SDK (V4) 開發人員指南,特別是遷移到第 4 版的主題。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的組態檔案參考 適用於 .NET 的 AWS SDK
注意
本主題中的資訊專屬於以 .NET Framework 為基礎的專案。根據預設, App.config和 Web.config 檔案不會出現在以 .NET Core 為基礎的專案中。
您可以使用 .NET 專案的 App.config或 Web.config 檔案來指定 AWS 設定,例如 AWS 登入資料、記錄選項、 AWS 服務端點和 AWS 區域,以及一些 AWS 服務設定,例如 Amazon DynamoDB、Amazon EC2 和 Amazon S3。以下資訊說明如何正確地格式化 App.config 或 Web.config 檔案,以指定這些類型的設定。
注意
雖然您可以繼續使用 App.config或 Web.config 檔案中的 <appSettings> 元素來指定 AWS 設定,但我們建議您如本主題稍後所述使用 <configSections>和 <aws>元素。如需 <appSettings>元素的詳細資訊,請參閱設定 適用於 .NET 的 AWS SDK 應用程式中的 <appSettings>元素範例。
注意
雖然您可以繼續使用程式碼檔案中的下列AWSConfigs類別屬性來指定 AWS 設定,但下列屬性已棄用,未來版本可能不支援:
-
DynamoDBContextTableNamePrefix -
EC2UseSignatureVersion4 -
LoggingOptions -
LogMetrics -
ResponseLoggingOption -
S3UseSignatureVersion4
一般而言,建議您不要在程式碼檔案中使用AWSConfigs類別屬性來指定 AWS 設定,而是使用 App.config或 Web.config 檔案中的 <configSections>和 <aws>元素來指定 AWS 設定,如本主題稍後所述。如需上述屬性的詳細資訊,請參閱設定 適用於 .NET 的 AWS SDK 應用程式中的AWSConfigs程式碼範例。
宣告 AWS 設定區段
您可以從 <aws>元素的 App.config或 Web.config 檔案中指定 AWS 設定。在您開始使用 <aws> 元素前,您必須建立一個 <section> 元素 (為 <configSections> 元素的子元素),並設其本身的 name 屬性為 aws,其本身的 type 屬性為 Amazon.AWSSection, AWSSDK.Core,如以下範例所示:
<?xml version="1.0"?> <configuration> ... <configSections> <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/> </configSections> <aws> <!-- Add your desired AWS settings declarations here. --> </aws> ... </configuration>
Visual Studio 編輯器不提供 <aws> 元素或其子元素完成自動的程式碼 (IntelliSense)。
為了協助您建立 <aws> 元素的正確格式版本,請呼叫 Amazon.AWSConfigs.GenerateConfigTemplate 方法。此輸出 <aws> 元素的正式版本,適合列印字串的方式,可依您的需求調整。以下章節說明 <aws> 元素的屬性和子元素。
允許的元素
以下是設定區段中 AWS 允許元素之間的邏輯關係清單。您可以呼叫 Amazon.AWSConfigs.GenerateConfigTemplate 方法產生最新的版本,也會輸出 <aws> 元素的正式版本,以字串方式呈現,所以您可以依需求調整。
<aws endpointDefinition="string value" region="string value" profileName="string value" profilesLocation="string value"> <logging logTo="None, Log4Net, SystemDiagnostics" logResponses="Never | OnError | Always" logMetrics="true | false" logMetricsFormat="Standard | JSON" logMetricsCustomFormatter="NameSpace.Class, Assembly" /> <dynamoDB conversionSchema="V1 | V2"> <dynamoDBContext tableNamePrefix="string value"> <tableAliases> <alias fromTable="string value" toTable="string value" /> </tableAliases> <map type="NameSpace.Class, Assembly" targetTable="string value"> <property name="string value" attribute="string value" ignore="true | false" version="true | false" converter="NameSpace.Class, Assembly" /> </map> </dynamoDBContext> </dynamoDB> <s3 useSignatureVersion4="true | false" /> <ec2 useSignatureVersion4="true | false" /> <proxy host="string value" port="1234" username="string value" password="string value" /> </aws>
元素參考
以下是 AWS 設定區段中允許的元素清單。允許每個元素的屬性和其父子元素都已列出。
別名
<alias> 元素表示在一個或多個從表格 (from-table) 至到表格 (to-table) 對應的單一項目,為類型設定指定不同的表格。此元素會對應到 適用於 .NET 的 AWS SDK之 Amazon.AWSConfigs.DynamoDBConfig.Context.TableAliases 屬性中 Amazon.Util.TableAlias 類別的執行個體。在套用表格的前綴名稱前,會完成重新對應。
這個元素可以包含下列屬性:
-
fromTable -
從表格 (from-table) 至到表格 (to-table) 對應的從表格 (from-table) 部分。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.TableAlias.FromTable屬性。 -
toTable -
從表格 (from-table) 至到表格 (to-table) 對應的至表格 (to-table) 部分。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.TableAlias.ToTable屬性。
<alias> 元素的父系為 <tableAliases> 元素。
<alias> 元素不含子元素。
以下為範例使用的 <alias> 元素:
<alias fromTable="Studio" toTable="Studios" />
aws
<aws> 元素代表 AWS 設定區段中最上層的元素。這個元素可以包含下列屬性:
-
endpointDefinition -
自訂組態檔案的絕對路徑,定義要使用 AWS 的區域和端點。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.EndpointDefinition屬性。 -
profileName -
用於進行服務呼叫之已儲存 AWS 登入資料的設定檔名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.AWSProfileName屬性。 -
profilesLocation -
與其他 AWS SDKs 共用的登入資料檔案位置的絕對路徑。預設情況下,登入資料檔案存放於目前使用者主目錄的
.aws目錄中。此屬性對應到 適用於 .NET 的 AWS SDK中的Amazon.AWSConfigs.AWSProfilesLocation屬性。 -
region -
未明確指定 AWS 區域之用戶端的預設區域 ID。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.AWSRegion屬性。
<aws> 元素沒有父元素。
<aws> 元素可以含有以下的子元素:
-
<dynamoDB> -
<ec2> -
<logging> -
<proxy> -
<s3>
以下為範例使用的 <aws> 元素:
<aws endpointDefinition="C:\Configs\endpoints.xml" region="us-west-2" profileName="development" profilesLocation="C:\Configs"> <!-- ... --> </aws>
dynamoDB
<dynamoDB> 元素代表 AmazonDynamoDB 設定的設定集合。這個元素可以包含 conversionSchema 屬性,這代表使用 .NET 和 DynamoDB 物件之間轉換。允許值包含 V1 和 V2。此屬性對應到 適用於 .NET 的 AWS SDK中的 Amazon.DynamoDBv2.DynamoDBEntryConversion 類別。如需詳細資訊,請參閱 DynamoDB 系列 - 轉換結構描述
<dynamoDB> 元素的父系為 <aws> 元素。
<dynamoDB> 元素可以含有 <dynamoDBContext> 子元素。
以下為範例使用的 <dynamoDB> 元素:
<dynamoDB conversionSchema="V2"> <!-- ... --> </dynamoDB>
dynamoDBContext
<dynamoDBContext> 元素代表 Amazon DynamoDB 內容專屬的設定集合。這個元素可以包含 tableNamePrefix 屬性,這代表 DynamoDB 內容將使用預設的表格的前綴名稱,如果未手動設定的話。此屬性從 適用於 .NET 的 AWS SDK中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TableNamePrefix 屬性對應到 Amazon.Util.DynamoDBContextConfig.TableNamePrefix 屬性。如需詳細資訊,請參閱 DynamoDB 開發套件的增強功能
<dynamoDBContext> 元素的父系為 <dynamoDB> 元素。
<dynamoDBContext> 元素可以含有以下的子元素:
-
<alias>(一個或多個執行個體) -
<map>(一個或多個執行個體)
以下為範例使用的 <dynamoDBContext> 元素:
<dynamoDBContext tableNamePrefix="Test-"> <!-- ... --> </dynamoDBContext>
ec2
<ec2> 元素代表 Amazon EC2 設定的集合。這個元素可以包含 useSignatureVersion4 屬性,指定第四版的簽章簽署將用於所有請求 (true) 或第四版的簽章簽署將不會用於所有請求 (false,預設)。此屬性從 適用於 .NET 的 AWS SDK中的 Amazon.AWSConfigs.EC2Config.UseSignatureVersion4 屬性對應到 Amazon.Util.EC2Config.UseSignatureVersion4 屬性。
<ec2> 的父系為此元素。
<ec2> 元素不含子元素。
以下為範例使用的 <ec2> 元素:
<ec2 useSignatureVersion4="true" />
日誌
<logging> 元素表示回應日誌記錄和效能指標記錄的設定集合。這個元素可以包含下列屬性:
-
logMetrics -
無論效能指標記錄是否適用於所有用戶端和組態 (true),否則 false。此屬性從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.LoggingConfig.LogMetrics屬性對應到Amazon.Util.LoggingConfig.LogMetrics屬性。 -
logMetricsCustomFormatter -
用於記錄指標的自訂格式化之資料類型和組件名稱。此屬性從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.LoggingConfig.LogMetricsCustomFormatter屬性對應到Amazon.Util.LoggingConfig.LogMetricsCustomFormatter屬性。 -
logMetricsFormat -
記錄指標的顯示格式 (從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.LoggingConfig.LogMetricsFormat屬性對應到Amazon.Util.LoggingConfig.LogMetricsFormat屬性)。允許數值包括:
-
JSON -
使用 JSON 格式。
-
Standard -
使用預設格。
-
-
logResponses -
日誌服務回應的時機 (從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.LoggingConfig.LogResponses屬性對應到Amazon.Util.LoggingConfig.LogResponses屬性)。允許數值包括:
-
Always -
一直記錄服務回應。
-
Never -
永遠不用記錄服務回應。
-
OnError -
只在發生錯誤時,記錄服務回應。
-
-
logTo -
登入位置 (從 中的
LogTo屬性映射至Amazon.AWSConfigs.LoggingConfig.LogTo屬性 適用於 .NET 的 AWS SDK)。允許的值包含一個或多個:
-
Log4Net -
記錄到 log4net。
-
None -
停用日誌記錄。
-
SystemDiagnostics -
記錄到 System.Diagnostics。
-
<logging> 元素的父系為 <aws> 元素。
<logging> 元素不含子元素。
以下為範例使用的 <logging> 元素:
<logging logTo="SystemDiagnostics" logResponses="OnError" logMetrics="true" logMetricsFormat="JSON" logMetricsCustomFormatter="MyLib.Util.MyMetricsFormatter, MyLib" />
映射
<map> 元素表示從 .NET 類型對應到 DynamoDB 資料表 (從 適用於 .NET 的 AWS SDK中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings 屬性對應到 TypeMapping 類別的執行個體) 之類型到資料表 (type-to-table) 對應集合中的單一項目,如需詳細資訊,請參閱 DynamoDB 開發套件的增強功能
這個元素可以包含下列屬性:
-
targetTable -
對應套用的 DynamoDB 表格。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.TypeMapping.TargetTable屬性。 -
type -
對應套用的類型和組件名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.TypeMapping.Type屬性。
<map> 元素的父系為 <dynamoDBContext> 元素。
<map> 元素可以包含 <property> 子元素的一個或多個執行個體。
以下為範例使用的 <map> 元素:
<map type="SampleApp.Models.Movie, SampleDLL" targetTable="Movies"> <!-- ... --> </map>
屬性
<property> 元素表示 DynamoDB 屬性。(此元素對應至 中 AddProperty方法的 Amazon.Util.PropertyConfig 類別執行個體 適用於 .NET 的 AWS SDK) 如需詳細資訊,請參閱 DynamoDB SDK 和 DynamoDB 屬性的增強功能
這個元素可以包含下列屬性:
-
attribute -
屬性的屬性名稱,例如範圍金鑰的名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.PropertyConfig.Attribute屬性。 -
converter -
此屬性應使用的轉換器類型。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.PropertyConfig.Converter屬性。 -
ignore -
此關聯的屬性是否應該被忽略 (true);否則為 false。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.PropertyConfig.Ignore屬性。 -
name -
屬性的名稱。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.PropertyConfig.Name屬性。 -
version -
此屬性是否應該存放項目版本編號 (true);否則為 false。此屬性對應到 適用於 .NET 的 AWS SDK中的
Amazon.Util.PropertyConfig.Version屬性。
<property> 元素的父系為 <map> 元素。
<property> 元素不含子元素。
以下為範例使用的 <property> 元素:
<property name="Rating" converter="SampleApp.Models.RatingConverter, SampleDLL" />
proxy
<proxy> 元素表示用於設定 適用於 .NET 的 AWS SDK 要使用之代理程式的設定。這個元素可以包含下列屬性:
- 託管
-
代理伺服器的主機名稱或 IP 地址。此屬性從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.ProxyConfig.Host屬性對應到Amazon.Util.ProxyConfig.Host屬性。 - 密碼
-
此密碼使用代理伺服器的進行身分驗證。此屬性從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.ProxyConfig.Password屬性對應到Amazon.Util.ProxyConfig.Password屬性。 - port
-
此代理的連接埠號碼。此屬性從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.ProxyConfig.Port屬性對應到Amazon.Util.ProxyConfig.Port屬性。 - 使用者名稱
-
使用代理伺服器進行身分驗證的使用者名稱。此屬性從 適用於 .NET 的 AWS SDK中的
Amazon.AWSConfigs.ProxyConfig.Username屬性對應到Amazon.Util.ProxyConfig.Username屬性。
<proxy> 元素的父系為 <aws> 元素。
<proxy> 元素不含子元素。
以下為範例使用的 <proxy> 元素:
<proxy host="192.0.2.0" port="1234" username="My-Username-Here" password="My-Password-Here" />
s3
<s3> 元素代表 Amazon S3 設定的集合。這個元素可以包含 useSignatureVersion4 屬性,指定第四版的簽章簽署將用於所有請求 (true) 或第四版的簽章簽署將不會用於所有請求 (false,預設)。此屬性對應到 適用於 .NET 的 AWS SDK中的 Amazon.AWSConfigs.S3Config.UseSignatureVersion4 屬性。
<s3> 元素的父系為 <aws> 元素。
<s3> 元素不含子元素。
以下為範例使用的 <s3> 元素:
<s3 useSignatureVersion4="true" />