Hvordan konfigurere hendelsesvarsler på S3 -bøtta

Hvordan konfigurere hendelsesvarsler på S3 -bøtta
I AWS er ​​S3 en enkel lagringstjeneste som lar deg lagre filer og andre data som S3 -objekter på en sky uten å administrere den underliggende maskinvaren. AWS S3 -tjenesten er serverløs, noe som betyr at du ikke trenger å gi noen lagringsstørrelse for en S3 -bøtte, så når du plasserer et objekt i en bøtte, øker selve bøttekapasiteten for å imøtekomme det nylig tilførte objektet. Maksimal størrelse på S3 -bøtta er teoretisk ubegrenset med en enkelt filstørrelse opptil 5 TB, og du kan laste opp en enkelt fil eller objekt opp til 5 GB, så du må dele opp en fil som er større enn 5 GB i størrelse.

Vi utfører vanligvis flere operasjoner over en S3 -bøtt. Dette kan oppnås ved hjelp av S3 -varsler om hendelser. Disse hendelsesvarsler kan settes til å laste opp filene, oppdatere versjonene av filer, slette de eldre objektene, S3 Lifecycle Transactions og mange andre operasjoner. S3 -bøtta vil varsle målet om den aktuelle handlingen med hendelsesvarsler aktivert. Varslingsleveringstiden er kort og i området sekunder og minutter.

For tiden kan tre AWS -tjenester utløses med AWS S3.

  • Enkel køstjeneste (SQS)
  • Enkel varslingstjeneste (SNS)
  • Lambda fungerer

La oss nå ta et dypere dykk og se hvordan det gjøres praktisk talt.

Konfigurer S3 varsler for AWS SQS

Først vil vi lage en S3 -bøtte som vi vil konfigurere hendelsesvarsler. For dette, bare logg inn på AWS -kontoen din og søk etter S3 -tjenesten ved å bruke søkefeltet som er tilgjengelig øverst i administrasjonskonsollen din.

S3 -konsollen vil vises foran deg; Bare klikk på Opprett bøtte.

I denne delen må du oppgi et bøtte -navn som må være universelt unikt.

Deretter må du spesifisere AWS -regionen der du vil at S3 -bøtta skal plasseres. Vi vet at S3 er en global tjeneste, og den er tilgjengelig fra alle regioner, men likevel må du definere i hvilken region du vil lagre dataene dine.

Deretter er det noen andre innstillinger du kan administrere som versjonering, kryptering og offentlig tilgang, men du kan ganske enkelt la dem være som standard som vi ikke har noe med dem å gjøre for tiden. Så bare dra ned og klikk på Create Bucket nederst til høyre for å fullføre prosessen.

Så endelig har vi opprettet en ny S3 -bøtte i AWS -kontoen vår.

Nå må vi opprette et mål for våre arrangementsvarsler, og vi vil velge SQS -tjenesten. I den øverste søkefeltet på AWS -konsollen, søk etter Amazons enkle kølitetjeneste.

Klikk på Opprett kø for å opprette et nytt SQS -emne.

Det første alternativet er å velge her er typen SQ -er som vi vil overlate til standard, i.e., standarden.

Neste, vi må oppgi SQS -emnetavnet.

Nå for å gjøre det mulig for vår S3 -bøtte å skrive til denne SQS -tjenesten, må vi gi riktig policy til SQS. For dette, velg Advanced in the Access Policy -delen.

Politikken kan redigeres direkte hvis du har gode ferdigheter med JSON og andre ting, men for enkelhets skyld vil vi bruke AWS-leverte policygenerator. Bare klikk på lenken nedenfor for å åpne policygeneratoren.

I Policy Generator, velg først policy -typen, som vil være SQS -kø -policy.

Deretter må vi velge effekten som er TILLATE her. Prinsippet vil være vår S3 -bøtte som vi konfigurerer hendelsesvarslene for, så vi må legge bøtta Arn her. Ressursen er tjenesten vi trenger denne policyen for å bli brukt på, så dette må være vårt SQS -emne Arn.

Handlingen vi trenger å velge fra rullegardinlisten er Send-meldinger, da vi vil at S3-bøtta vår skal sende meldingen til SQS-køen.

Klikk nå på Legg til uttalelse, og velg deretter Opprett policy for å få policyen i JSON -format.

Bare kopier det policyinnholdet derfra og plasser dem i SQS -policyen.

Rull nå ned i SQS Opprett delen og klikk på Opprett en kø. Legg igjen alle andre innstillinger som for nå.

Til slutt, kom nå tilbake til S3 -bøtta og velg kategorien Egenskaper.

Dra ned til varsler om hendelser og klikk på Opprett hendelsesvarsler.

Først må du oppgi navnet på arrangementet ditt.

Du må velge hendelsestypen du vil aktivere varslene. Det er en lang liste du kan velge mellom; For nå, la oss velge alle objektopprettingshendelser.

Vi må velge destinasjonen for våre varsler om arrangementet. For dette, velg SQS -tjenesten og velg deretter navnet på SQS -emnet.

Til slutt, bare klikk på Lagre endringer for å fullføre prosessen.

Så endelig er vi gode til å gå med S3 -varsler. Last nå opp et objekt i S3 -bøtta og sjekk om den utløser SQS.

Vi har lastet opp et objekt til vår S3 -bøtte.

Hvis du går til SQS og avstemning for meldinger, vil du få varsler om de hendelsene vi har aktivert.

Så vi har konfigurert S3 -varsler om hendelser for et SQS -emne.

Konfigurer S3 varsler for AWS SNS

Vi vil se et annet eksempel for S3-varsler for SNS, men denne gangen i stedet for å bruke styringskonsollen, vil vi bruke AWS-kommandolinjegrensesnittet (CLI). Så første trinn er å ganske enkelt opprette bøttene på AWS -kontoen vår, som vi ganske enkelt trenger å bruke følgende kommando.

$: AWS S3API Create-Bucket--Bucket --region

For å se de tilgjengelige S3 -bøttene på kontoen din, kan du bruke denne kommandoen

$: AWS S3API List-Buckets

Nå må vi lage et SNS -emne. For det, bruk følgende kommando på CLI

$: AWS SNS Create-Topic-Navn

Vi trenger en konfigurasjonsfil for å definere hendelsestypen og SNS -emnet ARN. Filen vil være i JSON -format.


"Emneconfiguration":
"Event": "S3: ObjectCreated:*", "Topic": "Arn: AWS: SNS: US-West-2: 123456789012: S3-Notification-Topic"

Nå endelig kan vi aktivere hendelsesvarslingen ved å bruke følgende kommando.

$: AWS S3API Put-Bucket-Notification--Bucket --varslingskonfigurasjonsfil: //

Så vi har aktivert S3 -varsler om hendelser for SNS -emnet vårt.

Konklusjon:

S3 -varsler om hendelser lar oss varsle andre tjenester om operasjonen som er utført på vår S3 -bøtte. Disse varslene kan brukes til å utløse Lambda -funksjoner, ved å bruke hvilke vi kan påkalle REST APIer for å kjøre en annen automatisert oppgave. Varslene kan også sendes til SQS eller SNS, som er veldig nyttige for å koble fra applikasjonene våre. Ved hjelp av SQS og SNS kan denne ordningen videre kobles til RDS slik at vi kan utvikle databasen vår for bestemte S3 -hendelser.