Amazon S3 Connector 6.3 の追加設定 - Mule 4

ソース操作を開始する前に

Amazon S3 ソース操作は Amazon SQS を使用して、S3 バケットで新しいオブジェクトが作成または削除されたときに通知します。

On New Object​ と ​On Deleted Object​ の複数の Amazon S3 ソースのシナリオがあります。

  1. キューがすでに作成​および指定されている

  2. キューがソースによって作成​されている

  3. イベント通知設定が​ソースによって作成されている

キューがすでに作成されている

すでに存在するキューのソースを正しく使用するには、Amazon SQS キューに対して次のアクションを有効にする必要があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sqs:DeleteMessage",
                "sqs:GetQueueUrl",
                "sqs:ReceiveMessage",
                "sqs:GetQueueAttributes"
            ],
            "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:QUEUE_NAME"
        }
    ]
}

さらに、S3 バケットで新規オブジェクトが作成または削除されたときにキューがメッセージを受信できるようにするには、次の形式でキューのポリシーを作成します。

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:REGION:ACCOUNT_ID:QUEUE_NAME/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid1593770403887",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "SQS:SendMessage",
      "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:QUEUE_NAME",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:::BUCKET_NAME"
        }
      }
    }
  ]
}

キューがソースによって作成されている

キューがソースによって作成されている場合、キュー名にはプレフィックス ​MULE-S3-TRIGGER​ が付いています。

キューがソースによって作成されている場合、ユーザーにはキューの作成とキュー属性の設定の両方に対する権限が必要です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sqs:DeleteMessage",
                "sqs:ReceiveMessage",
                "sqs:GetQueueAttributes",
                "sqs:CreateQueue",
                "sqs:SetQueueAttributes",
                "sqs:GetQueueUrl"
            ],
            "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:MULE-S3-TRIGGER-*"
        }
    ]
}

キューがソースによって作成されている場合、S3 オブジェクトがバケットで作成または削除されると、SQS ポリシーが次の形式でキューに追加されます。

{
  "Version": "2012-10-17",
  "Id": "example-ID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
    },
      "Action": "SQS:SendMessage",
      "Resource":QUEUE_ARN,
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "BUCKET_ARN"
        }
      }
    }
  ]
}

S3 バケットイベントの通知設定がすでに作成されている

すでに存在する通知設定のソースを正しく使用するには、ソースの [ADVANCED (詳細)] タブで通知設定名を指定する必要があります。

   <s3:new-object-trigger doc:name="On New Object" config-ref="${config}" bucketName="example-bucket-name"
                               notificationConfigurationName="on-new-object-configuration">
            <scheduling-strategy>
                <fixed-frequency/>
            </scheduling-strategy>
        </s3:new-object-trigger>

S3 ポリシーバケット

S3 ポリシーの場合、すべてのケースで次の形式を使用します。

{
    "Version": "2012-10-17",
    "Id": "Policy1593761427184",
    "Statement": [
        {
            "Sid": "Stmt1593760119344",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT_ID:user/test"
            },
            "Action": "SPECIFIC_ACTION",
            "Resource": "arn:aws:s3:::BUCKET_NAME/*"
        },
        {
            "Sid": "Stmt1593760259223",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT_ID:user/test"
            },
            "Action": ["s3:PutBucketNotification", "s3:GetBucketNotification"],
            "Resource": "arn:aws:s3:::BUCKET_NAME"
        }
    ]
}

この例では、指定されたソース操作に応じて、​SPECIFIC_ACTION​ は ​s3:PutObject​ または ​s3:DeleteObject​ です。

次のステップ

コネクタの設定が完了したら、​​を試すことができます。