In diesem Ansatz wird aufgezeigt, wie nach der Veröffentlichung von Wordpress-Beiträgen anfallende Prozesse effizienter gestaltet werden können.
Das Versenden von Rechnungen, Initiierung von Workflows oder sogar der Start kompletter virtueller Unternehmen können so mittels eines einzigen Klicks auf die Schaltfläche "Veröffentlichen" in einem WordPress-Beitrag ausgelößt werden.
AWS Lambda-Funktionen dienen dazu, Code in Reaktion auf Ereignisse auszuführen und gleichzeitig die benötigten Rechenressourcen automatisch zu verwalten. Das bedeutet, dass Lambda-Funktionen für eine Vielzahl von Aufgaben eingesetzt werden können:
Echtzeit-Datenverarbeitung, wie das Initiieren eines maschinellen Lernprozesses, Reagieren auf Benutzeranfragen oder Systemereignisse, wie das Verwalten Ihrer Bereitstellungsprozesse, Automatisierung von Aufgaben zur Infrastrukturverwaltung, wie das Starten von EC2-Instanzen, Integration mit APIs von Drittanbietern, wie das Auslösen einer Abrechnungs-API. Der Hauptvorteil der Verwendung von AWS Lambda-Funktionen anstelle des Betriebs eines Servers zur Berechnung von Aufgaben liegt in den Kosteneinsparungen. Durch die Verwendung von Lambda-Funktionen müssen Sie nicht für die erforderlichen Rechenressourcen eines Servers bezahlen. Darüber hinaus können Lambda-Funktionen automatisch skaliert werden, um die Nachfrage der Anwendung zu decken. Das beseitigt die Notwendigkeit, Rechenressourcen manuell zu skalieren. Schließlich sind Lambda-Funktionen einfach einzurichten und zu pflegen. Es sind nur wenige Zeilen Code nötig, um zu starten. Sie können sich also vorstellen, wie vorteilhaft es sein könnte, wenn Sie ein wenig mit dem Erstellen von Lambda-Funktionen auf AWS vertraut sind, insbesondere für geschäftliche Zwecke.
Per default ist es nicht möglich eine AWS Lambda-Funktion direkt aus einem WordPress-Beitrag heraus auszulösen. Sie können jedoch ein WordPress-Plugin verwenden, um einen Webhook einzurichten, der die Lambda-Funktion auslöst, wenn ein Beitrag veröffentlicht wird. Sobald der Webhook eingerichtet ist, können Sie die WordPress REST API verwenden, um bei jeder Veröffentlichung eines Beitrags eine Anfrage an den Webhook zu senden. Der Webhook ruft dann die Lambda-Funktion auf, um die notwendige Logik auszuführen und Ihren Workflow zu starten.
Im Folgenden finden Sie ein minimales Codebeispiel, das verwendet werden kann, um einen Webhook einzurichten, der eine AWS Lambda-Funktion auslöst, wenn ein WordPress-Beitrag veröffentlicht wird. Dieser Code sollte zur functions.php-Datei Ihres WordPress-Themas hinzugefügt werden. Alternativ können Sie auch Ihr eigenes Plugin erstellen, wenn Sie über Programmierkenntnisse verfügen. Beachten Sie jedoch, dass dies nur ein Beispiel ist und nicht für den Produktiveinsatz empfohlen wird. In diesem Fall müssten Sie Zugriffstoken über den AWS IAM-Dienst verwalten, Ihre eigenen Lambda-Funktionen und Workflows einrichten und programmieren.
// Store the Access Token retrieved AWS IAM service in the wp-config.php file
define( 'AWS_LAMBDA_ACCESS_TOKEN', '' );
define( 'AWS_LAMBDA_FUNCTION_URL', '' );
// Register a webhook that will trigger an AWS Lambda function in functions.php or within a plugin
add_action( 'publish_post', 'trigger_aws_lambda_function' );
function trigger_aws_lambda_function( $post_id ) {
// Get the Access Token from the wp-config.php file
$access_token = AWS_LAMBDA_ACCESS_TOKEN;
$lambda_url = AWS_LAMBDA_FUNCTION_URL;
// Get the post data
$post = get_post( $post_id );
$special_purpose = get_post_meta($post_id, 'purpose', true);
// Set up the webhook request
$request = array( 'method' => 'POST',
'timeout' => 45,
'headers' => array('Authorization' => 'Bearer' . $access_token),
'body' => array('post_id' => $post_id,
'post_title' => $post->post_title,
'purpose => $special_purpose,
// …
)
);
// Execute the webhook request
wp_remote_post($lambda_url, $request );
}
Um das zu verbessern, können Sie einfach andere Informationen im Anfrage-Array senden und verschiedene Szenarien in Ihrem AWS-Konto auslösen. Beispielsweise das Starten eines Backup-Skripts, das Versenden einer Rechnung oder sogar das Hochfahren eines kompletten internetbasierten Cloud-Unternehmens.