검색

2.16. 버킷 알림

download PDF

스토리지 관리자는 이러한 API를 사용하여 버킷 알림 메커니즘에 대한 구성 및 제어 인터페이스를 제공할 수 있습니다. API 주제는 특정 끝점의 정의를 포함하는 오브젝트라는 이름입니다. 버킷 알림은 주제를 특정 버킷과 연결합니다. S3 버킷 작업 섹션에서는 버킷 알림에 대한 자세한 내용을 제공합니다.

참고

모든 주제 작업에서 매개 변수는 인코딩된 URL이며 application/x-www-form-urlencoded 콘텐츠 유형을 사용하여 메시지 본문에 전송됩니다.

참고

주제 업데이트를 적용하려면 주제와 이미 연결된 모든 버킷 알림을 다시 생성해야 합니다.

2.16.1. 사전 요구 사항

  • Ceph Object Gateway에서 버킷 알림을 생성합니다.

2.16.2. 버킷 알림 개요

버킷 알림은 버킷에서 특정 이벤트가 발생할 때 Ceph Object Gateway에서 정보를 보낼 수 있는 방법을 제공합니다. 버킷 알림을 HTTP, AMQP0.9.1 및 Kafka 엔드포인트로 보낼 수 있습니다. 특정 버킷의 이벤트 및 특정 항목에 대한 버킷 알림을 보내려면 알림 항목을 생성해야 합니다. 이벤트 유형의 하위 집합 또는 모든 이벤트 유형에 대해 기본적으로 버킷 알림을 만들 수 있습니다. 버킷 알림은 키 접두사 또는 접미사, 키와 일치하는 정규 표현식, 개체에 연결된 메타데이터 속성 또는 오브젝트 태그를 기반으로 이벤트를 필터링할 수 있습니다. 버킷 알림에는 버킷 알림 메커니즘에 대한 구성 및 제어 인터페이스를 제공하는 REST API가 있습니다.

2.16.3. 영구 알림

영구 알림을 사용하면 Ceph Object Gateway에서 주제에서 구성된 엔드포인트로 알림을 안정적이고 비동기적으로 제공할 수 있습니다. 정규 알림은 요청 중에 끝점에 대한 전달이 동기적으로 수행되기 때문에 안정적입니다. 영구 알림을 사용하면 Ceph Object Gateway가 끝점이 다운되거나 작업 중에 네트워크 문제가 발생하더라도 알림 보내기를 다시 시도합니다. 이 알림은 끝점에 성공적으로 전달되지 않는 경우 다시 시도됩니다. 알림은 알림을 받은 작업과 관련된 다른 모든 작업이 성공한 후에만 전송됩니다. 끝점이 더 긴 기간 동안 다운되면 알림 큐가 채워지고 이러한 엔드포인트에 대한 알림을 구성한 S3 작업이 실패합니다.

참고

kafka-ack-level=none 을 사용하면 메시지 실패가 표시되지 않으므로 브로커가 다시 가동될 때 브로커가 중단되는 동안 전송된 메시지가 표시되지 않습니다. 브로커가 다시 가동되면 새 알림만 표시됩니다.

2.16.4. 항목 생성

버킷 알림을 생성하기 전에 주제를 생성할 수 있습니다. 주제는 SNS(Simple Notification Service) 엔티티이며 모든 주제 작업(즉, 생성,삭제,목록, 가져오기 및 get )은 DASD 작업입니다. 항목에 버킷 알림이 생성될 때 사용되는 끝점 매개 변수가 있어야 합니다. 요청이 성공하면 응답에 버킷 알림 요청에서 이 주제를 참조하는 데 사용할 수 있는 topic Amazon Resource Name(ARN)이 포함됩니다.

참고

topic_arn 은 버킷 알림 구성을 제공하며 주제가 생성된 후 생성됩니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph 개체 게이트웨이 설치.
  • 사용자 액세스 키 및 시크릿 키입니다.
  • 엔드포인트 매개변수입니다.

절차

  1. 다음 요청 형식을 사용하여 주제를 생성합니다.

    구문

    POST
    Action=CreateTopic
    &Name=TOPIC_NAME
    [&Attributes.entry.1.key=amqp-exchange&Attributes.entry.1.value=EXCHANGE]
    [&Attributes.entry.2.key=amqp-ack-level&Attributes.entry.2.value=none|broker|routable]
    [&Attributes.entry.3.key=verify-ssl&Attributes.entry.3.value=true|false]
    [&Attributes.entry.4.key=kafka-ack-level&Attributes.entry.4.value=none|broker]
    [&Attributes.entry.5.key=use-ssl&Attributes.entry.5.value=true|false]
    [&Attributes.entry.6.key=ca-location&Attributes.entry.6.value=FILE_PATH]
    [&Attributes.entry.7.key=OpaqueData&Attributes.entry.7.value=OPAQUE_DATA]
    [&Attributes.entry.8.key=push-endpoint&Attributes.entry.8.value=ENDPOINT]
    [&Attributes.entry.9.key=persistent&Attributes.entry.9.value=true|false]

    요청 매개 변수는 다음과 같습니다.

    • endpoint : 알림을 보낼 끝점의 URL입니다.
    • OpaqueData: 불투명 데이터가 주제 구성에 설정되고 해당 주제에서 트리거한 모든 알림에 추가됩니다.
    • persistent: 이 엔드포인트에 대한 알림이 비동기적인지 여부를 나타냅니다. 기본값은 false 입니다.
    • HTTP 끝점:

      • url: https://FQDN:PORT
      • 포트 기본값은 다음과 같습니다 : 그에 따라 HTTP[S]에 80/443을 사용합니다.
      • verify-ssl: 클라이언트에서 서버 인증서를 검증할지 여부를 나타냅니다. 기본값은 true입니다.By default, this is true.
    • AMQP0.9.1 끝점:

      • url: amqp://USER:passwords@FQDN:PORT[/VHOST].
      • 사용자 및 암호의 기본값은 guestguest 입니다.
      • 사용자 및 암호 세부 정보는 HTTPS를 통해 제공해야 합니다. 그렇지 않으면 주제 생성 요청이 거부됩니다.
      • 포트 기본값은: 5672입니다.
      • vhost 기본값은 "/"입니다.
      • AMQP-exchange: 교환이 있어야 하며 주제를 기반으로 메시지를 라우팅할 수 있어야 합니다. AMQP0.9.1의 필수 매개변수입니다. 동일한 엔드포인트를 가리키는 다른 주제는 동일한 교환기를 사용해야 합니다.
      • AMQP-ack-level: 메시지가 최종 목적지로 전달되기 전에 브로커에 보관될 수 있으므로 확인 완료는 필요하지 않습니다. 인증하는 세 가지 방법이 있습니다.

        • None: 브로커에 전송되는 경우 메시지가 배달되는 것으로 간주됩니다.
        • broker: 기본적으로 브로커가 승인한 경우 메시지가 배달되는 것으로 간주됩니다.
        • 라우팅 가능: 브로커가 소비자로 라우팅할 수 있는 경우 전달되는 메시지가 표시됩니다.

          참고

          특정 매개변수의 키와 값은 동일한 줄 또는 특정 순서로 상주할 필요는 없지만 동일한 인덱스를 사용해야 합니다. 특성 인덱싱은 순차적이거나 특정 값에서 시작할 필요가 없습니다.

          참고

          topic-name 은 AMQP 주제를 위해 사용됩니다.

    • Kafka 끝점:

      • URL: kafka://USER: passwords@FQDN:PORT.
      • 기본적으로 use-sslfalse 로 설정됩니다. use-ssltrue 로 설정되면 브로커 연결에 보안 연결이 사용됩니다.
      • ca-location 이 제공되고 보안 연결이 사용되는 경우 브로커를 인증하는 기본 CA 대신 지정된 CA가 사용됩니다.
      • 사용자 및 암호는 HTTP[S]를 통해서만 제공할 수 있습니다. 그렇지 않으면 주제 생성 요청이 거부됩니다.
      • 사용자 및 암호는 use-ssl 과 함께만 제공될 수 있습니다. 그렇지 않으면 브로커에 대한 연결이 실패합니다.
      • 포트 기본값은: 9092입니다.
      • Kafka-ack-level: 메시지가 최종 목적지로 전달되기 전에 브로커가 지속되기 전에 브로커가 지속할 수 있으므로 필요한 확인 작업을 종료하지 않습니다. 감사하는 두 가지 방법이 있습니다.

        • None: 브로커에 전송되는 경우 메시지가 배달되는 것으로 간주됩니다.
        • broker: 기본적으로 브로커가 승인한 경우 메시지가 배달되는 것으로 간주됩니다.

다음은 응답 형식의 예입니다.

예제

<CreateTopicResponse xmlns="https://sns.amazonaws.com/doc/2010-03-31/">
    <CreateTopicResult>
        <TopicArn></TopicArn>
    </CreateTopicResult>
    <ResponseMetadata>
        <RequestId></RequestId>
    </ResponseMetadata>
</CreateTopicResponse>

참고

응답의ARN(Amazon Resource Name) 항목에는 arn:aws:sns:ZONE_GROUP:TENANT: topIC 형식이 있습니다.

다음은 AMQP0.9.1 끝점의 예입니다.

예제

client.create_topic(Name='my-topic' , Attributes={'push-endpoint': 'amqp://127.0.0.1:5672', 'amqp-exchange': 'ex1', 'amqp-ack-level': 'broker'}) "

2.16.5. 주제 정보 얻기

특정 항목에 대한 정보를 반환합니다. 제공된 경우 끝점 정보가 포함될 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph 개체 게이트웨이 설치.
  • 사용자 액세스 키 및 시크릿 키입니다.
  • 엔드포인트 매개변수입니다.

절차

  1. 다음 요청 형식으로 주제 정보를 가져옵니다.

    구문

    POST
    Action=GetTopic
    &TopicArn=TOPIC_ARN

    응답 형식의 예는 다음과 같습니다.Here is an example of the response format:

    <GetTopicResponse>
    <GetTopicRersult>
    <Topic>
    <User></User>
    <Name></Name>
    <EndPoint>
    <EndpointAddress></EndpointAddress>
    <EndpointArgs></EndpointArgs>
    <EndpointTopic></EndpointTopic>
    <HasStoredSecret></HasStoredSecret>
    <Persistent></Persistent>
    </EndPoint>
    <TopicArn></TopicArn>
    <OpaqueData></OpaqueData>
    </Topic>
    </GetTopicResult>
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </GetTopicResponse>

    태그 및 정의는 다음과 같습니다.

    • User: 주제를 생성한 사용자의 이름입니다.
    • Name: 주제의 이름입니다.
    • JSON 형식의 끝점은 다음과 같습니다.

      • EndpointAddress: 엔드포인트 URL입니다. 엔드포인트 URL에 사용자 및 암호 정보가 포함된 경우 HTTPS를 통해 요청을 수행해야 합니다. otheriwse, 주제 get 요청이 거부됩니다.

        • EndPointArgs: 끝점 인수입니다.
        • EndpointTopic: 엔드포인트로 전송되는 주제 이름은 위의 예제 주제 이름과 다를 수 있습니다.
        • HasStoredSecret: 끝점 URL에 사용자 및 암호 정보가 포함된 경우true 입니다.
        • persistent: 주제가 지속되면true 입니다.
    • TopicArn: 주제입니다.
    • OpaqueData: 항목에 대한 불투명 데이터 집합입니다.

2.16.6. 주제 나열

사용자가 정의한 주제를 나열합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph 개체 게이트웨이 설치.
  • 사용자 액세스 키 및 시크릿 키입니다.
  • 엔드포인트 매개변수입니다.

절차

  1. 다음 요청 형식으로 주제 정보를 나열합니다.

    구문

    POST
    Action=ListTopics

    응답 형식의 예는 다음과 같습니다.Here is an example of the response format:

    <ListTopicdResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/">
    <ListTopicsRersult>
    <Topics>
    <member>
    <User></User>
    <Name></Name>
    <EndPoint>
    <EndpointAddress></EndpointAddress>
    <EndpointArgs></EndpointArgs>
    <EndpointTopic></EndpointTopic>
    </EndPoint>
    <TopicArn></TopicArn>
    <OpaqueData></OpaqueData>
    </member>
    </Topics>
    </ListTopicsResult>
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </ListTopicsResponse>
    참고

    끝점 URL에 사용자 및 암호 정보가 포함된 경우 모든 항목에서 HTTPS를 통해 요청을 수행해야 합니다. 그렇지 않으면 주제 목록 요청이 거부됩니다.

2.16.7. 주제 삭제

삭제된 주제를 제거하면 작업이 작동하지 않으며 실패하지 않습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 루트 수준 액세스.
  • Ceph 개체 게이트웨이 설치.
  • 사용자 액세스 키 및 시크릿 키입니다.
  • 엔드포인트 매개변수입니다.

절차

  1. 요청 형식을 사용하여 주제를 삭제합니다.

    구문

    POST
    Action=DeleteTopic
    &TopicArn=TOPIC_ARN

    응답 형식의 예는 다음과 같습니다.Here is an example of the response format:

    <DeleteTopicResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/">
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </DeleteTopicResponse>

2.16.8. 이벤트 레코드

이벤트에는 Ceph Object Gateway에서 수행한 작업에 대한 정보가 있으며 HTTP, HTTPS, Kafka 또는 AMQ0.9.1과 같은 선택한 끝점에서 페이로드로 전송됩니다. 이벤트 레코드는 JSON 형식으로 되어 있습니다.

예제

{"Records":[
    {
        "eventVersion":"2.1",
        "eventSource":"ceph:s3",
        "awsRegion":"us-east-1",
        "eventTime":"2019-11-22T13:47:35.124724Z",
        "eventName":"ObjectCreated:Put",
        "userIdentity":{
            "principalId":"tester"
        },
        "requestParameters":{
            "sourceIPAddress":""
        },
        "responseElements":{
            "x-amz-request-id":"503a4c37-85eb-47cd-8681-2817e80b4281.5330.903595",
            "x-amz-id-2":"14d2-zone1-zonegroup1"
        },
        "s3":{
            "s3SchemaVersion":"1.0",
            "configurationId":"mynotif1",
            "bucket":{
                "name":"mybucket1",
                "ownerIdentity":{
                    "principalId":"tester"
                },
                "arn":"arn:aws:s3:us-east-1::mybucket1",
                "id":"503a4c37-85eb-47cd-8681-2817e80b4281.5332.38"
            },
            "object":{
                "key":"myimage1.jpg",
                "size":"1024",
                "eTag":"37b51d194a7513e45b56f6524f2d51f2",
                "versionId":"",
                "sequencer": "F7E6D75DC742D108",
                "metadata":[],
                "tags":[]
            }
        },
        "eventId":"",
        "opaqueData":"me@example.com"
    }
]}

다음은 이벤트 레코드 키와 해당 정의입니다.

  • awsRegion: Zonegroup.
  • eventTime: 이벤트가 트리거된 시기를 나타내는 타임 스탬프입니다.
  • event name : 이벤트의 유형입니다.
  • userIdentity.principalId: 이벤트를 트리거한 사용자의 ID입니다.
  • requestParameters.sourceIPAddress - 이벤트를 트리거한 클라이언트의 IP 주소입니다. 이 필드는 지원되지 않습니다.
  • responseElements.x-amz-request-id: 이벤트를 트리거한 요청 ID입니다.
  • responseElements.x_amz_id_2: 이벤트가 트리거된 Ceph Object Gateway의 ID입니다. ID 형식은 RGWID-ZONE-ZONEGROUP 입니다.
  • s3.configurationId: 이벤트를 생성한 알림 ID입니다.
  • s3.bucket.name: 버킷의 이름입니다.
  • s3.bucket.ownerIdentity.principalId: 버킷의 소유자입니다.
  • s3.bucket.arn: 버킷의 Amazon Resource Name (ARN)입니다.
  • s3.bucket.id: 버킷의 ID입니다.
  • s3.object.key: 오브젝트 키입니다.
  • s3.object.size: 오브젝트의 크기입니다.
  • s3.object.eTag: 오브젝트 etag.
  • s3.object.version: 버전이 지정된 버킷의 오브젝트 버전입니다.
  • s3.object.sequencer: Monotonically increasing 16진수 개체별 변경 식별자입니다.
  • s3.object.metadata: x-amz-meta 로 전송되는 오브젝트에 설정된 모든 메타데이터입니다.
  • s3.object.tags: 오브젝트에 설정된 모든 태그입니다.
  • s3.eventId: 이벤트의 고유 ID입니다.
  • s3.opaqueData: Opaque 데이터는 주제 구성에 설정되고 해당 주제에서 트리거한 모든 알림에 추가됩니다.

추가 리소스

2.16.9. 지원되는 이벤트 유형

다음과 같은 이벤트 유형이 지원됩니다.

  • s3:ObjectCreated:*
  • s3:ObjectCreated:Put
  • s3:ObjectCreated:Post
  • s3:ObjectCreated:Copy
  • s3:ObjectCreated:CompleteMultipartUpload
  • s3:ObjectRemoved:*
  • s3:ObjectRemoved:Delete
  • s3:ObjectRemoved:DeleteMarkerCreated
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.