第2章 Amazon S3 への接続
インテグレーションは Amazon S3 バケットからデータを取得したり、Amazon S3 バケットへデータをコピーしたりすることができます。これには、Amazon S3 コネクションを作成し、そのコネクションをインテグレーションフローに追加します。詳細は以下を参照してください。
2.1. Amazon S3 コネクションの作成における前提条件
Amazon S3 コネクションを作成するには、以下を知っておく必要があります。
コネクションがアクセスするバケットを作成した (またはこれから作成する) Amazon Web Services (AWS) アカウントに関連する Amazon S3 アクセスキー ID。
現時点では存在しないバケットにアクセスするコネクションを作成できます。この場合、インテグレーションの実行が開始されると、このアクセスキー ID に関連する AWS アカウントを使用してバケットの作成を試みます。
- コネクションがアクセスするバケットを作成した (またはインテグレーションの実行が開始されたときに作成を試みる) AWS アカウントに関連する Amazon S3 シークレットアクセスキー。
アクセスするバケットの名前、または Amazon リソースネーム (ARN)。
指定したバケットが存在しない場合、コネクションは指定した名前でバケットを作成しようとします。S3 では、バケットをパブリックにアクセスできる URL として使用することが可能であるため、指定するバケット名はグローバルで一意である必要があります。さらに、S3 バケットの命名要件 に準拠する必要があります。
指定するバケットが Amazon S3 アクセスキー ID に関連する AWS アカウントに存在せず、別の AWS アカウントに存在する場合、コネクションはバケットを作成せず、このコネクションを使用するインテグレーションは実行を開始することができません。
- バケットのあるリージョン、またはコネクションがバケットを作成するリージョン。
バケットを作成した AWS アカウントまたはこれからバケットを作成する AWS アカウントのログインクレデンシャルを持つユーザーは、以下のように Amazon S3 キーを取得します。
- https://aws.amazon.com/s3/ にアクセスします。
- アカウント で AWS マネジメントコンソール を選択します。アクセスするバケットを作成した AWS アカウントまたはバケットを作成するためにコネクションが使用するアカウントでコンソールにサインインします。
- コンソール右上のユーザー名の横にある下矢印をクリックし、セキュリティ認証情報 をクリックします。
- アクセスキー を展開し、新しいアクセスキーの作成スキーの作成 をクリックします。
- プロンプトにしたがってキーを取得します。
2.2. Amazon S3 コネクションの作成
Amazon S3 コネクションをインテグレーションに追加する前に Amazon S3 コネクションを作成する必要があります。
前提条件
「Amazon S3 コネクション作成の前提条件」を参照してください。
手順
- Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
- 右上にある Create Connection をクリックし、Fuse Online コネクターを表示します。
- Amazon S3 コネクターをクリックします。
- Access Key フィールドに、このコネクションがアクセスするバケットを作成した AWS アカウントの Amazon S3 アクセスキー ID を入力します。コネクションがアクセスするバケットが存在しない場合は、Fuse Online がインテグレーションの実行を開始しようとするときに、そのアクセスキーに関連する AWS アカウントを使用してバケットを作成します。しかし、他の AWS アカウントにバケットが存在する場合は、コネクションはバケットを作成できず、インテグレーションを開始できません。
- Bucket Name or Amazon Resource Name フィールドに、このコネクションがアクセスするバケットの名前またはバケットの ARN を入力します。使用している AWS のアカウントまたは他の AWS アカウントにバケットが存在しない場合は、コネクションがこのバケットを作成します。
- Region フィールドではバケットが存在する AWS リージョンを選択します。コネクションがバケットを作成する場合にここで選択されたリージョンに作成されます。
- Secret Key フィールドに、このコネクションがアクセスするバケットを作成した (またはこれから作成する) アカウントの Amazon S3 シークレットアクセスキーを入力します。このキーは AWS によって提供されます。
- Validate をクリックします。Fuse Online は即座にコネクションの検証を試み、検証の成功または失敗を示すメッセージを表示します。検証に失敗した場合は、必要に応じて設定の詳細を修正し、再度検証を行います。
- 検証に成功したら Next をクリックします。
-
Connection Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
Obtain S3 Data
を入力します。 -
Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、
Sample S3 connection that obtains data from the northeast bucket.
を入力します。 - 右上にある Create をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして Obtain S3 Data が表示されます。
2.3. Amazon S3 からデータを取得してインテグレーションの実行をトリガー
Amazon S3 バケットからデータを取得してインテグレーションを開始するには、Amazon S3 コネクションをシンプルなインテグレーションの最初のコネクションとして追加します。
前提条件
Amazon S3 コネクションが作成済みである必要があります。
手順
- Fuse Online パネルの左側にある Integrations をクリックします。
- Create Integration をクリックします。
- Choose a Start Connection ページで、インテグレーションを開始するために使用する Amazon S3 コネクションをクリックします。
Choose an Action ページで、コネクションが実行するアクションをクリックします。
- Get Object は、コネクションがアクセスするバケットからファイルを取得します。File Name フィールドでは、取得するファイルの名前を入力します。指定したファイルがバケットにない場合は、ランタイムエラーが発生します。
Poll an Amazon S3 Bucket は、コネクションがアクセスするバケットからファイルを定期的に取得します。このアクションを設定するには、以下を行います。
- Delay フィールドで、デフォルトの 500 ミリ秒をポーリング間の経過時間として受け入れます。別のポーリング間隔を指定する場合は、数値を入力し、時間の単位を選択します。
Maximum Objects to Retrieve フィールドに、1 回のポーリング操作で取得可能なファイルの最大数を入力します。デフォルトは 10 です。
取得するファイルの数を無制限にするには、
0
または負の整数を指定します。Maximum Objects to Retrieve が無制限の場合、ポーリングはバケットのすべてのファイルを取得します。バケットに指定された最大数を超える数のファイルが含まれている場合、編集または作成日時が最も新しいファイルから取得します。
- Prefix フィールドには、文字列を評価する正規表現を任意で指定します。接頭辞を指定した場合、名前がこの文字列で始まるファイルのみを取得します。
- Obtain files and then delete them from the bucket (ファイルを取得し、取得済みのファイルをバケットから削除) を行うかどうかを示します。
- アクションの設定後、Done をクリックしてアクションの出力タイプを指定します。
データタイプの認識が必要がない場合は、Select Type フィールドで Type specification not required を受け入れ、下部にある Done をクリックします。残りの手順を行う必要はありません。
その他の場合は、以下の 1 つをスキーマタイプとして選択します。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
application/schema+json
です。 -
JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは
application/json
です。 -
XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は
.xsd
です。 -
XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は
.xml
です。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
-
Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが
application/schema+json
の JSON スキーマファイルの内容を貼り付けます。 Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、データ型名として
Vendor
を指定できます。このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーション仮想化パネルとデータマッパーにタイプ名が表示されます。
- Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
- Done をクリックします。
インテグレーションフローの最初にコネクションが表示されます。
2.4. Amazon S3 にデータを追加してインテグレーションを終了
データを Amazon S3 にコピーしてインテグレーションを終了するには、Amazon S3 コネクションをシンプルなインテグレーションの最後のコネクションとして追加します。
前提条件
Amazon S3 コネクションが作成済みである必要があります。
手順
- インテグレーションの作成を開始します。
- 最初のコネクションを追加および設定します。
- Choose a Finish Connection ページで、インテグレーションの終了に使用する Amazon S3 コネクションをクリックします。
コネクションが実行するアクションをクリックします。
Copy Object は 1 つ以上のオブジェクトをバケットに追加します。
1 つのファイルをバケットに追加するには、その名前を File Name フィールドに入力します。
複数のファイルをバケットに追加する場合はファイル名を指定しません。この場合、アクションによって以前のインテグレーションステップから取得されるすべてのオブジェクトが追加されます。
ポーリングを使用して複数のファイルを取得し、ファイル名を指定する場合、Copy Object アクションはポーリングで受け取った最後のファイルのみを追加します。
- Delete Object はバケットからオブジェクトを削除します。File Name フィールドに削除するオブジェクトの名前を指定します。指定したファイルがバケットにない場合、エラーは発生せず、インテグレーションが継続されます。
- 指定したアクションの設定後、Next をクリックしてアクションの入力タイプを指定します。
データタイプの認識が必要がない場合は、Select Type フィールドで Type specification not required を受け入れ、下部にある Done をクリックします。残りの手順を行う必要はありません。
その他の場合は、以下の 1 つをスキーマタイプとして選択します。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
application/schema+json
です。 -
JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは
application/json
です。 -
XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は
.xsd
です。 -
XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は
.xml
です。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
-
Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが
application/schema+json
の JSON スキーマファイルの内容を貼り付けます。 Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、データ型名として
Vendor
を指定できます。このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーション仮想化パネルとデータマッパーにタイプ名が表示されます。
- Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
- Done をクリックします。
インテグレーションフローの最後にコネクションが表示されます。
2.5. インテグレーションの途中で Amazon S3 にデータを追加
インテグレーションの途中で Amazon S3 にデータを追加するには、Amazon S3 コネクションをフローの途中に追加します。
前提条件
- Amazon S3 コネクションが作成済みである必要があります。
- フローを作成または編集することになります。Fuse Online はステップの選択を要求します。
手順
- フローの途中に使用する Amazon S3 コネクションをクリックします。
コネクションが実行するアクションをクリックします。
Copy Object は 1 つ以上のオブジェクトをバケットに追加します。
1 つのファイルをバケットに追加するには、その名前を File Name フィールドに入力します。
複数のファイルをバケットに追加する場合はファイル名を指定しません。この場合、アクションによって以前のインテグレーションステップから取得されるすべてのオブジェクトが追加されます。
ポーリングを使用して複数のファイルを取得し、ファイル名を指定する場合、Copy Object アクションはポーリングで受け取った最後のファイルのみを追加します。
- Delete Object はバケットからオブジェクトを削除します。File Name フィールドに削除するオブジェクトの名前を指定します。指定したファイルがバケットにない場合、エラーは発生せず、インテグレーションが継続されます。
- 指定したアクションの設定後、Next をクリックしてアクションの入力タイプを指定します。
データタイプの認識が必要がない場合は、Select Type フィールドで Type specification not required を受け入れ、下部にある Done をクリックします。残りの手順を行う必要はありません。
その他の場合は、以下の 1 つをスキーマタイプとして選択します。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
application/schema+json
です。 -
JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは
application/json
です。 -
XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は
.xsd
です。 -
XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は
.xml
です。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
-
Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが
application/schema+json
の JSON スキーマファイルの内容を貼り付けます。 Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、データ型名として
Vendor
を指定できます。このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーション仮想化パネルとデータマッパーにタイプ名が表示されます。
- Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
- Done をクリックします。
インテグレーションフローで追加した場所にコネクションが表示されます。