使用Flow Service API連線Amazon S3以Experience Platform

閱讀本指南,瞭解如何使用Flow Service API將您的Amazon S3來源帳戶連結至Adobe Experience Platform。

快速入門

本指南需要您深入了解下列 Adobe Experience Platform 元件:

  • 來源:Experience Platform允許從各種來源擷取資料,同時讓您能夠使用Platform服務來建構、加標籤以及增強傳入的資料。
  • 沙箱:Experience Platform提供可將單一Platform執行個體分割成個別虛擬環境的虛擬沙箱,以利開發及改進數位體驗應用程式。

使用平台API

如需如何成功呼叫Platform API的詳細資訊,請參閱Platform API快速入門的指南。

連線Amazon S3以在Azure上Experience Platform azure

請閱讀下列步驟,以瞭解如何連線您的Amazon S3來源以在Azure上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建立基礎連線

基礎連線會保留您的來源和平台之間的資訊,包括來源的驗證認證、連線的目前狀態,以及您唯一的基本連線ID。 基礎連線ID可讓您從來源內部探索及導覽檔案,並識別您要擷取的特定專案,包括其資料型別和格式的資訊。

若要建立基底連線ID,請在提供S3驗證認證作為要求引數的一部分時,向/connections端點提出POST要求。

API格式

POST /connections

要求

下列要求會建立Amazon S3的基礎連線:

選取以檢視請求範例
code language-shell
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"
        }
    }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
屬性 說明
auth.params.s3AccessKey 與您的S3貯體關聯的存取金鑰。
auth.params.s3SecretKey 與您的S3貯體相關聯的秘密金鑰。
auth.params.s3SessionToken (選用)用來存取貯體的短期暫時S3權杖。
connectionSpec.id S3連線規格識別碼: ecadc60c-7455-4d87-84dc-2a0e293d997b

回應

成功的回應會傳回新建立連線的詳細資料,包括其唯一識別碼(id)。 在下個教學課程中探索您的儲存空間時,需要此ID。

選取以檢視回應範例
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}

更新您的S3工作階段權杖

s3SessionToken是暫時性的,到期時必須更新。 您可以藉由向Flow Service API發出PATCH要求,更新與基本連線關聯的工作階段權杖。 請參閱S3 總覽,以瞭解S3的暫時安全性認證的詳細資訊。

IMPORTANT
發出PATCH要求時需要If-Match標頭。 此標頭的值是您要更新之連線的唯一標籤。

API格式

PATCH /connections

要求

下列要求會建立Amazon S3的基礎連線:

選取以檢視請求範例
code language-shell
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}"
        }
    ]'
table 0-row-2 1-row-2 2-row-2 3-row-2
參數 說明
op 用於定義更新連線所需動作的操作呼叫。 作業包括: addreplaceremove
path 要更新之引數的路徑。
value 您想要用來更新引數的新值。

回應

成功的回應會傳回您的基本連線ID和更新的etag。 您可以向Flow Service API發出GET要求,同時提供連線ID以驗證更新。

選取以檢視回應範例
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"3600e378-0000-0200-0000-5f40212f0000\""
}

連線Amazon S3以在Amazon Web Services (AWS)上Experience Platform aws

AVAILABILITY
本節適用於在Amazon Web Services (AWS)上執行的Experience Platform實作。 在AWS上執行的Experience Platform目前可供有限數量的客戶使用。 若要深入瞭解支援的Experience Platform基礎結構,請參閱Experience Platform多雲端總覽

請閱讀下列步驟,以瞭解如何連線您的Amazon S3來源以在AWS上Experience Platform。

先決條件

若要連線您的Amazon S3帳戶以Experience Platform在AWS上,您必須具備下列條件:

  • 具有您要連線之Amazon S3儲存貯體或資料夾存取權的AWS帳戶。
  • 允許s3:GetObjects3:ListBucket動作的必要IAM許可權。

擷取貯體許可權的IAM角色

API格式

GET /connectionSpecs/{CONNECTION_SPEC_ID}/configs?authType={AUTH_TYPE}

要求

選取以檢視請求範例
code language-shell
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貯體中設定許可權。

選取以檢視回應範例
code language-json
{
    "configParams": {
          "IAMRole": "{IAM_ROLE}"
    }
}

在您的Amazon S3貯體中設定許可權

  1. AWS管理主控台中登入您的帳戶。
  2. 導覽至您的Amazon S3貯體,然後選取​ Permissions
  3. 編輯貯體原則並新增以下許可權:
TIP
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的基礎連線:

選取以檢視範例
code language-shell
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"
      }
  }'
table 0-row-2 1-row-2
屬性 說明
auth.params.bucketName 您的Amazon S3儲存貯體的名稱。 此值與先前步驟中新增至許可權的值相同。

回應

成功的回應會傳回新建立連線的詳細資料,包括其唯一識別碼(id)。 在下個教學課程中探索您的儲存空間時,需要此ID。

選取以檢視範例
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}

後續步驟

依照本教學課程所述,您已使用API建立S3連線,且已取得唯一ID作為回應本文的一部分。 您可以使用此連線ID來使用Flow Service API🔗 探索雲端儲存空間。

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089