Flow Service API を使用した Amazon S3 のExperience Platformへの接続

Flow Service API を使用して Amazon S3 ソースアカウントをAdobe Experience Platformに接続する方法については、このガイドを参照してください。

はじめに

このガイドは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。

  • ソース:Experience Platformを使用すると、データを様々なソースから取得しながら、Platform サービスを使用して受信データの構造化、ラベル付け、拡張を行うことができます。
  • サンドボックス:Experience Platformには、単一の 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 バケットのアクセスキー ID。
s3SecretKey
Amazon S3 バケットの秘密鍵 ID。
serviceUrl
(任意)接続先のカスタム Amazon S3 エンドポイント。 Amazon S3 バケットが地域に固有の場合、このフィールドは必須です。 serviceUrl の形式は https://s3.{REGION}.amazonaws.com/) です。
bucketName
Amazon S3 バケットには、データと、それに対応する説明メタデータが含まれています。 Amazon S3 バケット名は、3 ~ 63 文字の長さで、先頭と末尾は文字または数字にする必要があります。 バケット名には小文字、数字、ハイフン (-)のみを使用でき、IP アドレスとしてフォーマットすることはできません。
folderPath
データが格納されている Amazon S3 バケット内のフォルダーへのパス。 この資格情報は、ユーザーがアクセスを制限している場合に必要です。
s3SessionToken
(オプション)信頼できない環境のユーザーに Amazon S3 リソースへの一時的なアクセスを提供できる、短期間の一時的なトークン。 詳しくは、Amazon S3 概要を参照してください。
connectionSpec.id
接続仕様は、ベース接続とソース接続の作成に関連する認証仕様などの、ソースのコネクタプロパティを返します。Amazon S3 の接続仕様 ID は ecadc60c-7455-4d87-84dc-2a0e293d997b です。

基本について詳しくは、 このドキュメント Amazon Web Services を参照してくだい。

Azure にExperience Platform上の Amazon S3 のベース接続を作成する

ベース接続は、ソースと Platform 間の情報(ソースの認証資格情報、現在の接続状態、固有のベース接続 ID など)を保持します。ベース接続 ID により、ソース内からファイルを参照および移動し、データタイプやフォーマットに関する情報を含む、取り込みたい特定の項目を識別することができます。

ベース接続 ID を作成するには、/connections エンドポイントに POST リクエストを実行し、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",
        "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 接続仕様 ID:ecadc60c-7455-4d87-84dc-2a0e293d997b

応答

リクエストが成功した場合は、一意の ID(id)を含む、新しく作成した接続の詳細が返されます。この ID は、次のチュートリアルでストレージを調査するために必要になります。

選択すると応答の例が表示されます
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}

S3 セッショントークンの更新

s3SessionToken は一時的なもので、有効期限が切れたら更新する必要があります。 API にセッションリクエストを実行することで、ベースPATCHに関連付けられたセッショントークン Flow Service 更新できます。 S3 の一時的セキュリティ資格情報について詳しくは、S3 概要を参照してください。

IMPORTANT
If-Match ヘッダーは、PATCH リクエストを行う際に必要です。このヘッダーの値は、更新する接続の一意の etag です。

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のExperience Platform(AWS)に接続する aws

AVAILABILITY
この節の内容は、Amazon Web Services(AWS)上で動作するExperience Platformの実装に適用されます。 AWSで実行されるExperience Platformは、現在、限られた数のお客様が利用できます。 サポートされるExperience Platformインフラストラクチャについて詳しくは、Experience Platformマルチクラウドの概要を参照してください。

Amazon S3 ソースをAWS上のExperience Platformに接続する方法については、以下の手順を参照してください。

前提条件

Amazon S3 アカウントをAWSのExperience Platformに接続するには、次のものが必要です。

  • 接続する 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 Management Console でアカウントにログインします。
  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で Amazon S3 on Experience Platformのベース接続を作成する

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)を含む、新しく作成した接続の詳細が返されます。この 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