Gegevens verspreiden zich binnen de onderneming en werknemers gebruiken meer applicaties dan ooit tevoren om hun werk te doen. Volgens Okta Inc. is het aantal software-apps dat door grote bedrijven in alle bedrijfstakken over de hele wereld wordt ingezet zelfs verhoogde 68%, waarmee een gemiddelde van 129 apps per bedrijf wordt bereikt.
Naarmate werknemers zichzelf blijven bedienen en het aantal applicaties dat zij gebruiken groeit, zal ook de kans toenemen dat kritische bedrijfsinformatie moeilijk te vinden blijft of verloren gaat tussen systemen, wat een negatieve invloed heeft op de productiviteit van het personeel en de bedrijfskosten.
Amazon Kendra is een intelligente zoekservice, mogelijk gemaakt door machine learning (ML). In tegenstelling tot conventionele zoektechnologieën herinterpreteert Amazon Kendra het zoeken door ongestructureerde gegevens uit meerdere gegevensbronnen te verenigen als onderdeel van één doorzoekbare index. Dankzij de mogelijkheden voor diepgaand leren en natuurlijke taalverwerking kunt u gemakkelijk relevante antwoorden krijgen wanneer u ze nodig heeft.
Amazon Kendra Enterprise Edition bevat opslagcapaciteit voor 500,000 documenten (150 GB opslag) en een querycapaciteit van 40,000 queries per dag (0.5 queries per seconde), en stelt je in staat om indexcapaciteit aanpassen door uw query- en opslagcapaciteitseenheden indien nodig te vergroten of verkleinen.
Gebruikspatronen en zakelijke behoeften zijn echter niet altijd voorspelbaar. In dit bericht laten we zien hoe u uw Amazon Kendra-index automatisch kunt schalen op basis van een tijdschema met behulp van Amazon EventBridge en AWS Lambda. Door dit te doen kunt u de capaciteit voor piekgebruik vergroten, servicebeperkingen voorkomen, de flexibiliteit behouden en de kosten onder controle houden.
Overzicht oplossingen
Amazon Kendra biedt een dashboard waarmee u het gemiddelde aantal zoekopdrachten per seconde voor uw index kunt evalueren. Met deze informatie kunt u een schatting maken van het aantal extra capaciteitseenheden dat uw werklast op een bepaald tijdstip nodig heeft.
Uit de volgende grafiek blijkt bijvoorbeeld dat er tijdens kantooruren een stijging optreedt in het gemiddelde aantal zoekopdrachten per seconde, maar dat na kantooruren het aantal zoekopdrachten afneemt. We baseren onze oplossing op dit patroon om een geplande EventBridge-gebeurtenis op te zetten die de automatische schalings-Lambda-functie activeert.
Het volgende diagram illustreert onze architectuur.
U kunt de oplossing op twee verschillende manieren in uw account implementeren:
- Implementeer een AWS serverloos toepassingsmodel (AWS SAM)-sjabloon:
- Kloon het project vanuit de aws-monsters repository op GitHub en volg de instructies.
- Maak de bronnen met behulp van de AWS-beheerconsole. In dit bericht leiden we je door de volgende stappen:
- Stel de Lambda-functie in voor schaling
- Configureer machtigingen voor de functie
- Test de functie
- Stel een geplande EventBridge-gebeurtenis in
Stel de Lambda-functie in
Om de Lambda-functie te maken die we gebruiken voor het schalen, maken we een functie met behulp van de Python-runtime (voor dit bericht gebruiken we de Python 3.8-runtime).
Gebruik de volgende code als de inhoud van uw lambda_function.py
code:
U moet de volgende variabelen aanpassen aan uw omgeving:
- INDEX_ID – Het ID van uw index; je kunt het controleren op de Amazon Kendra-console.
- DEFAULT_UNITS – Het aantal queryverwerkingseenheden dat uw Amazon Kendra Enterprise Edition nodig heeft om op minimale capaciteit te werken. Dit aantal kan variëren van 0 tot 20 (u kunt meer capaciteit aanvragen). 0 betekent dat er geen extra capaciteitseenheden zijn ingericht voor uw Amazon Kendra Enterprise Edition-index, waardoor deze een standaardcapaciteit van 0.5 zoekopdrachten per seconde heeft.
- AANVULLENDE EENHEDEN – Het aantal querycapaciteitseenheden dat u nodig heeft op de momenten dat er extra capaciteit nodig is. Deze waarde kan variëren van 1–20 (u kunt extra capaciteit aanvragen).
Configureer functierechten
Om de status van uw index op te vragen en het aantal querycapaciteitseenheden te wijzigen, moet u een beleid aan uw Lambda-functie koppelen AWS Identiteits- en toegangsbeheer (IAM) uitvoeringsrol met deze machtigingen.
- Navigeer op de Lambda-console naar uw functie.
- Op de machtigingen tabblad, kies de uitvoeringsrol.
De IAM-console wordt automatisch geopend.
- Op de machtigingen tabblad, kies Voeg beleid toe.
- Kies Maak beleid.
Er wordt een nieuw tabblad geopend.
- Op de JSON tabblad, voeg de volgende inhoud toe (zorg ervoor dat u uw account- en gebruikersgegevens opgeeft):
- Kies Volgende: Tags.
- Kies Volgende: Review.
- Voor Naam, voer een beleidsnaam in (voor dit bericht gebruiken we
AmazonKendra_UpdateIndex
). - Kies Maak beleid.
- Op de Machtigingen bijvoegen pagina, kies het vernieuwingspictogram.
- Filter om het beleid te vinden dat u heeft gemaakt.
- Selecteer het beleid en kies Beleid bijvoegen.
Test de functie
U kunt uw Lambda-functie testen door een testgebeurtenis uit te voeren. Voor meer informatie, zie Roep de Lambda-functie op.
- Navigeer op de Lambda-console naar uw functie.
- Maak een nieuwe testgebeurtenis door te kiezen test.
- kies Maak een nieuw testevenement.
- Voor Evenement sjabloon, omdat uw functie geen invoer van de gebeurtenis vereist, kunt u de
hello-world
evenement sjabloon.
- Kies creëren.
- Kies test.
Op de Lambda-functielogboeken kunt u de volgende berichten zien:
Stel een geplande EventBridge-gebeurtenis in
Een geplande EventBridge-gebeurtenis is een EventBridge-gebeurtenis die volgens een regelmatig schema wordt geactiveerd. In deze sectie wordt uitgelegd hoe u een geplande EventBridge-gebeurtenis kunt maken die elke dag om 7 uur UTC en om 8 uur UTC plaatsvindt om de kendra-index-scaler
Lambda-functie. Hierdoor kan uw index om 7 uur omhoog schalen met de extra querycapaciteitseenheden en om 8 uur omlaag schalen.
Wanneer u geplande EventBridge-evenementen instelt, doet u dit voor de UTC-tijdzone, dus u moet de tijdsafwijking berekenen. Als u de gebeurtenis bijvoorbeeld om 7 uur Central Standard Time (CST) wilt laten plaatsvinden, moet u de tijd instellen op 1 uur UTC. Als u rekening wilt houden met zomertijd, moet u een andere regel maken om rekening te houden met het verschil.
- Op de EventBridge-console, in het navigatievenster, onder Evenementen, kiezen Reglement.
- Kies Creëer regel.
- Voor Naam, voer een naam in voor uw regel (voor dit bericht gebruiken we
kendra-index-scaler
).
- In het Definieer patroon sectie, selecteer Plan.
- kies Cron-expressie en ga naar binnen
0 7,20 * * ? *
.
We gebruiken dit cron-expressie om het EventBridge-evenement elke dag om 7 uur en 8 uur te activeren.
- In het Selecteer evenementenbus sectie, selecteer AWS standaard gebeurtenisbus.
- In het Selecteer doelen sectie, voor doelwit, kiezen Lambda-functie.
- Voor Functie, voer de functie in die u eerder hebt gemaakt (
lambda_function_kendra_index_handler
).
- Kies creëren.
U kunt controleren Amazon CloudWatch-logboeken voor de lambda_function_kendra_index_handler
functioneren en zien hoe deze zich gedraagt, afhankelijk van de eenheden van de querycapaciteit van uw index.
Conclusie
In dit bericht heb je een mechanisme geïmplementeerd om automatisch extra queryverwerkingseenheden te schalen voor je Amazon Kendra Enterprise Edition-index.
Als volgende stap kunt u periodiek uw gebruikspatronen bekijken om de planning zo te plannen dat deze aansluit bij uw vraagvolume. Ga voor meer informatie over de gebruiksscenario's en voordelen van Amazon Kendra en hoe u ermee aan de slag kunt gaan naar de webpagina!
Over de auteurs
Juan Bustos is een AI Services Specialist Solutions Architect bij Amazon Web Services, gevestigd in Dallas, TX. Buiten zijn werk brengt hij graag tijd door met schrijven en muziek spelen, maar ook in willekeurige restaurants met zijn gezin.
Tapodipta Ghosh is senior architect. Hij leidt het Content And Knowledge Engineering Machine Learning-team dat zich richt op het bouwen van modellen gerelateerd aan AWS Technical Content. Hij helpt onze klanten ook met AI/ML-strategie en -implementatie met behulp van onze AI Language-diensten zoals Amazon Kendra.
Tom McMahon is een Product Marketing Manager bij het AI Services-team bij AWS. Hij heeft een passie voor technologie en verhalen vertellen en heeft tijd doorgebracht in een breed scala van sectoren, waaronder de gezondheidszorg, detailhandel, logistiek en e-commerce. In zijn vrije tijd brengt hij graag tijd door met familie, muziek, golfen en het verkennen van het verbazingwekkende noordwesten van de Stille Oceaan en zijn omgeving.
Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://aws.amazon.com/blogs/machine-learning/automatically-scale-amazon-kendra-query-capacity-units-with-amazon-eventbridge-and-aws-lambda/