第 4 版 (V4) AWS SDK for .NET 正在預覽!若要在預覽中查看此新版本的相關資訊,請參閱 AWS SDK for .NET (第 4 版預覽) 開發人員指南。
請注意,開發套件的 V4 處於預覽狀態,因此其內容可能會有所變更。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的組態檔案參考 AWS SDK for .NET
注意
本主題中的資訊專屬於以 .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>
元素的詳細資訊,請參閱設定 AWS SDK for .NET 應用程式中的 <appSettings>
元素範例。
注意
雖然您可以繼續使用程式碼檔案中的下列 AWSConfigs 類別屬性來指定 AWS 設定,但下列屬性已棄用,未來版本可能不支援:
-
DynamoDBContextTableNamePrefix
-
EC2UseSignatureVersion4
-
LoggingOptions
-
LogMetrics
-
ResponseLoggingOption
-
S3UseSignatureVersion4
一般而言,建議您不要在程式碼檔案中使用AWSConfigs
類別屬性來指定 AWS 設定,而是使用 App.config
或 Web.config
檔案中的 <configSections>
和 <aws>
元素來指定 AWS 設定,如本主題稍後所述。如需上述屬性的詳細資訊,請參閱設定 AWS SDK for .NET 應用程式中的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) 對應的單一項目,為類型設定指定不同的表格。此元素會對應到 AWS SDK for .NET之 Amazon.AWSConfigs.DynamoDBConfig.Context.TableAliases
屬性中 Amazon.Util.TableAlias
類別的執行個體。在套用表格的前綴名稱前,會完成重新對應。
這個元素可以包含下列屬性:
-
fromTable
-
從表格 (from-table) 至到表格 (to-table) 對應的從表格 (from-table) 部分。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.TableAlias.FromTable
屬性。 -
toTable
-
從表格 (from-table) 至到表格 (to-table) 對應的至表格 (to-table) 部分。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.TableAlias.ToTable
屬性。
<alias>
元素的父系為 <tableAliases>
元素。
<alias>
元素不含子元素。
以下為範例使用的 <alias>
元素:
<alias
fromTable="Studio"
toTable="Studios" />
aws
<aws>
元素代表 AWS 設定區段中最上層的元素。這個元素可以包含下列屬性:
-
endpointDefinition
-
自訂組態檔案的絕對路徑,定義要使用 AWS 的區域和端點。此屬性對應到 AWS SDK for .NET中的
Amazon.AWSConfigs.EndpointDefinition
屬性。 -
profileName
-
用於進行服務呼叫的已儲存 AWS 登入資料的設定檔名稱。此屬性對應到 AWS SDK for .NET中的
Amazon.AWSConfigs.AWSProfileName
屬性。 -
profilesLocation
-
與其他 AWS SDKs 共用之登入資料檔案位置的絕對路徑。預設情況下,登入資料檔案存放於目前使用者主目錄的
.aws
目錄中。此屬性對應到 AWS SDK for .NET中的Amazon.AWSConfigs.AWSProfilesLocation
屬性。 -
region
-
未明確指定 AWS 區域之用戶端的預設區域 ID。此屬性對應到 AWS SDK for .NET中的
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。此屬性對應到 AWS SDK for .NET中的 Amazon.DynamoDBv2.DynamoDBEntryConversion
類別。如需詳細資訊,請參閱 DynamoDB 系列 - 轉換結構描述
<dynamoDB>
元素的父系為 <aws>
元素。
<dynamoDB>
元素可以含有 <dynamoDBContext>
子元素。
以下為範例使用的 <dynamoDB>
元素:
<dynamoDB
conversionSchema="V2">
<!-- ... -->
</dynamoDB>
dynamoDBContext
<dynamoDBContext>
元素代表 Amazon DynamoDB 內容專屬的設定集合。這個元素可以包含 tableNamePrefix 屬性,這代表 DynamoDB 內容將使用預設的表格的前綴名稱,如果未手動設定的話。此屬性從 AWS SDK for .NET中的 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,預設)。此屬性從 AWS SDK for .NET中的 Amazon.AWSConfigs.EC2Config.UseSignatureVersion4
屬性對應到 Amazon.Util.EC2Config.UseSignatureVersion4
屬性。
<ec2>
的父系為此元素。
<ec2>
元素不含子元素。
以下為範例使用的 <ec2>
元素:
<ec2
useSignatureVersion4="true" />
日誌
<logging>
元素表示回應日誌記錄和效能指標記錄的設定集合。這個元素可以包含下列屬性:
-
logMetrics
-
無論效能指標記錄是否適用於所有用戶端和組態 (true),否則 false。此屬性從 AWS SDK for .NET中的
Amazon.AWSConfigs.LoggingConfig.LogMetrics
屬性對應到Amazon.Util.LoggingConfig.LogMetrics
屬性。 -
logMetricsCustomFormatter
-
用於記錄指標的自訂格式化之資料類型和組件名稱。此屬性從 AWS SDK for .NET中的
Amazon.AWSConfigs.LoggingConfig.LogMetricsCustomFormatter
屬性對應到Amazon.Util.LoggingConfig.LogMetricsCustomFormatter
屬性。 -
logMetricsFormat
-
記錄指標的顯示格式 (從 AWS SDK for .NET中的
Amazon.AWSConfigs.LoggingConfig.LogMetricsFormat
屬性對應到Amazon.Util.LoggingConfig.LogMetricsFormat
屬性)。允許數值包括:
-
JSON
-
使用 JSON 格式。
-
Standard
-
使用預設格。
-
-
logResponses
-
日誌服務回應的時機 (從 AWS SDK for .NET中的
Amazon.AWSConfigs.LoggingConfig.LogResponses
屬性對應到Amazon.Util.LoggingConfig.LogResponses
屬性)。允許數值包括:
-
Always
-
一直記錄服務回應。
-
Never
-
永遠不用記錄服務回應。
-
OnError
-
只在發生錯誤時,記錄服務回應。
-
-
logTo
-
登入位置 (從 中的
LogTo
屬性映射至Amazon.AWSConfigs.LoggingConfig.LogTo
屬性 AWS SDK for .NET)。允許的值包含一個或多個:
-
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 資料表 (從 AWS SDK for .NET中的 Amazon.AWSConfigs.DynamoDBConfig.Context.TypeMappings
屬性對應到 TypeMapping
類別的執行個體) 之類型到資料表 (type-to-table) 對應集合中的單一項目,如需詳細資訊,請參閱 DynamoDB 開發套件的增強功能
這個元素可以包含下列屬性:
-
targetTable
-
對應套用的 DynamoDB 表格。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.TypeMapping.TargetTable
屬性。 -
type
-
對應套用的類型和組件名稱。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.TypeMapping.Type
屬性。
<map>
元素的父系為 <dynamoDBContext>
元素。
<map>
元素可以包含 <property>
子元素的一個或多個執行個體。
以下為範例使用的 <map>
元素:
<map
type="SampleApp.Models.Movie, SampleDLL"
targetTable="Movies">
<!-- ... -->
</map>
屬性
<property>
元素表示 DynamoDB 屬性。(此元素對應至 中 AddProperty
方法的 Amazon.Util.PropertyConfig 類別執行個體 AWS SDK for .NET) 如需詳細資訊,請參閱 DynamoDB SDK 和 DynamoDB 屬性的增強功能
這個元素可以包含下列屬性:
-
attribute
-
屬性的屬性名稱,例如範圍金鑰的名稱。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.PropertyConfig.Attribute
屬性。 -
converter
-
此屬性應使用的轉換器類型。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.PropertyConfig.Converter
屬性。 -
ignore
-
此關聯的屬性是否應該被忽略 (true);否則為 false。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.PropertyConfig.Ignore
屬性。 -
name
-
屬性的名稱。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.PropertyConfig.Name
屬性。 -
version
-
此屬性是否應該存放項目版本編號 (true);否則為 false。此屬性對應到 AWS SDK for .NET中的
Amazon.Util.PropertyConfig.Version
屬性。
<property>
元素的父系為 <map>
元素。
<property>
元素不含子元素。
以下為範例使用的 <property>
元素:
<property
name="Rating"
converter="SampleApp.Models.RatingConverter, SampleDLL" />
proxy
<proxy>
元素表示用於設定 AWS SDK for .NET 要使用之代理程式的設定。這個元素可以包含下列屬性:
- 託管
-
代理伺服器的主機名稱或 IP 地址。此屬性從 AWS SDK for .NET中的
Amazon.AWSConfigs.ProxyConfig.Host
屬性對應到Amazon.Util.ProxyConfig.Host
屬性。 - 密碼
-
此密碼使用代理伺服器的進行身分驗證。此屬性從 AWS SDK for .NET中的
Amazon.AWSConfigs.ProxyConfig.Password
屬性對應到Amazon.Util.ProxyConfig.Password
屬性。 - port
-
此代理的連接埠號碼。此屬性從 AWS SDK for .NET中的
Amazon.AWSConfigs.ProxyConfig.Port
屬性對應到Amazon.Util.ProxyConfig.Port
屬性。 - 使用者名稱
-
使用代理伺服器進行身分驗證的使用者名稱。此屬性從 AWS SDK for .NET中的
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,預設)。此屬性對應到 AWS SDK for .NET中的 Amazon.AWSConfigs.S3Config.UseSignatureVersion4
屬性。
<s3>
元素的父系為 <aws>
元素。
<s3>
元素不含子元素。
以下為範例使用的 <s3>
元素:
<s3 useSignatureVersion4="true" />