使用Flow Service API連線Amazon S3至Experience Platform
建立對象:
- 開發人員
閱讀本指南,瞭解如何使用Flow Service API將您的Amazon S3來源帳戶連結至Adobe Experience Platform。
快速入門
本指南需要您深入了解下列 Adobe Experience Platform 元件:
使用Experience Platform API
如需如何成功呼叫Experience Platform API的詳細資訊,請參閱Experience Platform API快速入門指南。
在Azure上連線Amazon S3至Experience Platform
請閱讀下列步驟,以瞭解如何在Azure上將您的Amazon S3來源連線至Experience Platform。
收集必要的認證
為了讓Flow Service與您的Amazon S3儲存裝置連線,您必須提供下列連線屬性的值:
認證 | 說明 |
---|---|
s3AccessKey | 您的Amazon S3貯體的存取金鑰識別碼。 |
s3SecretKey | Amazon S3儲存貯體的秘密金鑰識別碼。 |
serviceUrl | (選用)要連線的自訂Amazon S3端點。 當您的Amazon S3貯體是區域專屬時,此欄位是必要的。 serviceUrl 的格式為: https://s3.{REGION}.amazonaws.com/) 。 |
bucketName | Amazon S3貯體包含您的資料及其對應的描述性中繼資料。 您的Amazon S3貯體名稱長度必須介於3到63個字元之間,且開頭和結尾必須是字母或數字。 儲存貯體名稱只能有小寫字母、數字或連字型大小(- ),且不能格式化為IP位址。 |
folderPath | Amazon S3儲存貯體中資料儲存位置的資料夾路徑。 當使用者存取受限時,需要此認證。 |
s3SessionToken | (選用)短期的暫時Token,可讓您將Amazon S3資源的暫時存取權提供給不受信任環境中的使用者。 如需詳細資訊,請參閱Amazon S3 概觀。 |
connectionSpec.id | 連線規格會傳回來源的聯結器屬性,包括與建立基礎連線和來源連線相關的驗證規格。 Amazon S3的連線規格識別碼為: ecadc60c-7455-4d87-84dc-2a0e293d997b 。 |
如需開始使用的詳細資訊,請瀏覽此 Amazon Web Services 檔案。
在Azure上的Experience Platform上為Amazon S3建立基礎連線
基本連線會保留來源與Experience Platform之間的資訊,包括來源的驗證認證、連線的目前狀態,以及唯一的基本連線ID。 基礎連線ID可讓您從來源內部探索及導覽檔案,並識別您要擷取的特定專案,包括其資料型別和格式的資訊。
若要建立基底連線ID,請在提供您的S3驗證認證作為要求引數的一部分時,對/connections
端點提出POST要求。
API格式
POST /connections
要求
下列要求會建立Amazon S3的基礎連線:
選取以檢視請求範例
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Amazon S3 base connection",
"description": "Amazon S3 base connection with temporary session token",
"auth": {
"specName": "Access Key",
"params": {
"s3AccessKey": "{S3_ACCESS_KEY}",
"s3SecretKey": "{S3_SECRET_KEY}",
"s3SessionToken": "{S3_SESSION_TOKEN}
}
},
"connectionSpec": {
"id": "ecadc60c-7455-4d87-84dc-2a0e293d997b",
"version": "1.0"
}
}'
屬性 | 說明 |
---|---|
auth.params.s3AccessKey | 與您的S3貯體關聯的存取金鑰。 |
auth.params.s3SecretKey | 與您的S3貯體相關聯的秘密金鑰。 |
auth.params.s3SessionToken | (選用)用來存取貯體的短期暫時S3權杖。 |
connectionSpec.id | S3連線規格識別碼: ecadc60c-7455-4d87-84dc-2a0e293d997b |
回應
成功的回應會傳回新建立連線的詳細資料,包括其唯一識別碼(id
)。 在下個教學課程中探索您的儲存空間時,需要此ID。
選取以檢視回應範例
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}
更新您的S3工作階段權杖
s3SessionToken
是暫時性的,到期時必須更新。 您可以透過向Flow Service API發出PATCH請求來更新與您的基本連線關聯的工作階段權杖。 請參閱S3 總覽,以瞭解S3的暫時安全性認證的詳細資訊。
If-Match
標頭。 此標頭的值是您要更新之連線的唯一標籤。API格式
PATCH /connections
要求
下列要求會建立Amazon S3的基礎連線:
curl -X PATCH \
'https://platform.adobe.io/data/foundation/flowservice/connections/4cb0c374-d3bb-4557-b139-5712880adc55' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'If-Match: "1700d77b-0000-0200-0000-5e3b41a10000"'
-d '[
{
"op": "replace",
"path": "/auth/params/s3SessionToken",
"value": "{SESSION_TOKEN}"
}
]'
op
add
、replace
和remove
。path
value
回應
成功的回應會傳回您的基本連線ID和更新的etag。 您可以透過向Flow Service API發出GET請求來驗證更新,同時提供您的連線ID。
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"3600e378-0000-0200-0000-5f40212f0000\""
}
將Amazon S3連線到Amazon Web Services (AWS)上的Experience Platform
請閱讀下列步驟,以瞭解如何將Amazon S3來源連線至AWS上的Experience Platform。
先決條件
若要將您的Amazon S3帳戶連線至AWS上的Experience Platform,您必須具備下列條件:
- 具有您要連線之Amazon S3儲存貯體或資料夾存取權的AWS帳戶。
- 允許
s3:GetObject
和s3:ListBucket
動作的必要IAM許可權。
擷取貯體許可權的IAM角色
API格式
GET /connectionSpecs/{CONNECTION_SPEC_ID}/configs?authType={AUTH_TYPE}
要求
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs/ecadc60c-7455-4d87-84dc-2a0e293d997b/configs?authType=IamBasedAuthentication' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
回應
成功的回應會傳回您的IAM角色。 下一個步驟需要此值,才能在您的Amazon S3貯體中設定許可權。
{
"configParams": {
"IAMRole": "{IAM_ROLE}"
}
}
在您的Amazon S3貯體中設定許可權
- 在AWS管理主控台中登入您的帳戶。
- 導覽至您的Amazon S3貯體,然後選取 Permissions。
- 編輯貯體原則並新增以下許可權:
IAM_ROLE_TO_ALLOW_LIST
為在上一步中透過API擷取的IAM角色。 您必須將{YOUR_BUCKET_NAME}取代為Amazon S3儲存貯體的實際名稱。 如果您想要授與特定資料夾的存取權,則您也必須將{YOUR_FOLDER_NAME}取代為您要授與存取權的資料夾的實際名稱。{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AEP Get Object Related Policy Prod",
"Effect": "Allow",
"Principal": {
"AWS": "{IAM_ROLE_TO_ALLOW_LIST}"
},
"Action": "s3:Get*",
"Resource": "arn:aws:s3:::{YOUR_BUCKET_NAME}/{YOUR_FOLDER_NAME}"
},
{
"Sid": "AEP List Bucket Prod",
"Effect": "Allow",
"Principal": {
"AWS": "{IAM_ROLE_TO_ALLOW_LIST}"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::{YOUR_BUCKET_NAME}"
}
]
}
在AWS的Experience Platform上為Amazon S3建立基礎連線
API格式
POST /connections
要求
下列要求會建立Amazon S3的基礎連線:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Amazon S3 base connection for Experience Platform on AWS",
"description": "Amazon S3 base connection for Experience Platform on AWS",
"auth": {
"specName": "IAMRole Based",
"params": {
"bucketName": "{YOUR_BUCKET_NAME}"
}
},
"connectionSpec": {
"id": "ecadc60c-7455-4d87-84dc-2a0e293d997b",
"version": "1.0"
}
}'
auth.params.bucketName
回應
成功的回應會傳回新建立連線的詳細資料,包括其唯一識別碼(id
)。 在下個教學課程中探索您的儲存空間時,需要此ID。
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}
後續步驟
依照本教學課程所述,您已使用API建立S3連線,且已取得唯一ID作為回應本文的一部分。 您可以使用此連線ID來使用Flow Service API🔗 探索雲端儲存空間。