Flow Service APIを使用してAmazon S3をExperience Platformに接続します

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

基本を学ぶ

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

  • ​ ソース ​: Experience Platformを使用すると、様々なソースからデータを取り込むことができますが、Experience Platform サービスを使用して、着信データを構造化、ラベル付け、強化することができます。
  • ​ サンドボックス ​: Experience Platformは、1つのExperience Platform インスタンスを個別のバーチャル環境に分割し、デジタルエクスペリエンスアプリケーションの開発と進化に役立つバーチャルサンドボックスを提供します。

Experience Platform APIの使用

Experience Platform APIの呼び出しを正常に行う方法について詳しくは、Experience Platform APIの概要に関するガイドを参照してください。

Amazon S3をAzure上のExperience Platformに接続 azure

AzureでAmazon S3 ソースを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 です。

開始の詳細については、this Amazon Web Services documentを参照してください。

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

ベース接続は、ソースの認証情報、接続の現在の状態、一意のベース接続IDなど、ソースとExperience Platform間の情報を保持します。 ベース接続 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は一時的なもので、有効期限が切れたときに更新する必要があります。 ベース接続に関連付けられているセッショントークンを更新するには、Flow Service APIにPATCH リクエストを行います。 S3の一時的なセキュリティ資格情報について詳しくは、S3 概要を参照してください。

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

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 マルチクラウドの概要を参照してください。

AWSでAmazon S3 ソースを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の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)を含む、新しく作成した接続の詳細が返されます。 この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
experience-platform-help-sources