Lambda-functies zijn een handig item om AWS is het berekenen van diensten. Omdat ze in principe alleen een functie in de cloud, het bijhouden van verschillende versies en uitrollen van updates is het cruciaal om met hen samen te werken effectief.
$NIEUWSTE Tracks van De Meest Recente Updates
Wanneer u een wijziging aanbrengt in een Lambda functie, wijzigingen worden automatisch doorgevoerd in een versie met de naam $LAATSTE. Deze tracks de meest recente updates, en is de standaard versie voor de meeste Lambda-functies. Wijzigingen van de Lambda-edit-pagina, Cloud9 IDE, en zip uploaden van de CLI alle update van deze versie.
Vanwege dit, de $NIEUWSTE versie mag niet worden gebruikt in de productie, zoals eventuele updates voor de functie voor het testen van nieuwe features zullen van invloed zijn op uw productie verkeer. Plus, er is geen gemakkelijke manier is om uit te rollen updates over de tijd met CodeDeploy als u $LAATSTE.
In plaats daarvan raden wij het maken van nieuwe versies voor elke versie, en een “productie” – alias verwijst. $LAATSTE kan worden gebruikt voor de ontwikkeling, met een eigen alias wijzen om het zo goed.
Het toevoegen van een Nieuwe Versie (En een Verschuiving van Verkeer Naar Het)
Werken met versies is vrij eenvoudig. Van de Lambda-Management Console, selecteer uw functie, en klik op de “Versie:” dropdown. Dit zal u toelaten om te schakelen tussen de versies, en bekijk de versies die momenteel in gebruik zijn.
Voor de publicatie van een nieuwe versie, moet u overschakelen naar de $NIEUWSTE versie, en klik op “Publiceren nieuwe versie” van de “Acties” dropdown.
Nieuwe versies zijn nogal archaïsch aangeduid met een oplopende geheel getal, met geen manier om gebruik te maken van de standaard major.minor.patch formaat dat wordt gebruikt voor de meeste software releases. Als je het echt nodig deze indeling raden wij u het gebruik CodePipeline met SAM implementaties, en bijhouden van uw Lambda versies van Git.
Deze nieuwe versie gebruikt kan worden in andere diensten, zoals API Gateway. Echter, u wilt niet te hebben om update elke dienst die gebruik maakt van uw Lambda functie iedere keer dat u de functie zelf is bijgewerkt. In plaats daarvan moet u een Alias aan te maken, die verwijst naar een bepaalde versie, en kan worden ingesteld als het eindpunt voor API Gateway. Op deze manier, wanneer u publiceert een nieuwe versie, je moet gewoon een update van de alias in te schakelen alles over.
U kunt aliassen maken van dezelfde “Actions” menu. Geef het een naam, zoals “Productie” en selecteer een versie van de wijs.
Aliassen kunnen ook geleidelijk verschuiving van het verkeer over naar een nieuwe versie. Terwijl u handmatig kunt instellen, dan is het vooral gebruikt voor CodeDeploy implementaties, waar nieuwe versies van uw functies kunnen worden ingezet om geleidelijk aan, bijvoorbeeld, 10% elke vijf minuten of zo. Op deze manier kunt u de vangst van fouten vroege en rollback releases voordat ze invloed hebben op iedereen.
SAM Implementaties Automatisch Toevoegen van Nieuwe Versies
Het maken van versies handmatig is handig, maar als je het beheer van veel van de functies, zult u waarschijnlijk gebruik maken van SAM implementaties in de plaats. Lambda functies geïmplementeerd met behulp van SAM sjablonen, zal automatisch een nieuwe versie (en update $LAATSTE).
In combinatie met Git voor versie beheer, en AWS is CodePipeline CI/CD-service, dit maakt het versiebeheer voor de Lambda functie veel eenvoudiger. Wanneer een wijziging wordt geduwd naar de release-branch in je source control, CodePipeline zal leiden tot automatisch en update uw functies. Als je werkt met een taal die moet compileren (of transpiling in het geval van Typoscript), kunt u ook sturen uw functie code te CodeBuild aan het verwerken van de stage ook.
SAM is de implementatie van een uitbreiding van CloudFormation, dus alle implementaties gemaakt met behulp van SAM zal maken van een nieuwe CloudFormation stapel. Wanneer updates worden geduwd, CloudFormation erkent dat het een stack-update, plaats dan een nieuwe stapel, en vervangt de huidige functie versie met de bijgewerkte.