J'ai été capable de résoudre le problème en utilisant un peu d'une solution de contournement via la fonction Lambda et en utilisant également la réponse fournie par Kannaiyan.
J'ai créé l'abonnement à ES via la console, puis je me suis désabonné et j'ai modifié le code par défaut de la fonction Lambda.
Je déclare deux points d'extrémité ElasticSearch:
var endpoint1 = '<ELASTICSEARCH ENDPOINT 1>';
var endpoint2 = '<ELASTICSEARCH ENDPOINT 2>';
Ensuite, a déclaré un tableau nommé "point final" avec le contenu de endpoint1 et Endpoint2:
var endpoint = [endpoint1, endpoint2];
J'ai modifié la fonction "post" qui appelle la fonction "buildRequest" qui référence alors "endpoint" ...
function post(body, callback) {
for (index = 0; index < endpoint.length; ++index) {
var requestParams = buildRequest(endpoint[index], body);
...
Ainsi, chaque fois que la fonction "post" est appelée, elle parcourt le tableau points d'extrémité. Ensuite, j'ai modifié la fonction buildRequest chargée de construire la requête. Cette fonction appelle par défaut la variable endpoint, mais depuis que la fonction "post" parcourt le tableau, j'ai renommé "endpoint" en "endpoint_xy" pour m'assurer qu'il n'appelle pas la variable globale et prend la variable en entrée dans le fonction:
function buildRequest(endpoint_xy, body) {
var endpointParts = endpoint_xy.match(/^([^\.]+)\.?([^\.]*)\.?([^\.]*)\.amazonaws\.com$/);
...
Enfin, je la réponse fournie par Kannaiyan sur l'utilisation de l'AWS CLI pour mettre en œuvre l'abonnement aux journaux, mais corrige quelques variables:
aws logs put-subscription-filter \
--log-group-name <LOG GROUP NAME> \
--filter-name <FILTER NAME>
--filter-pattern <FILTER PATTERN>
--destination-arn <LAMBDA FUNCTION ARN>
J'ai gardé les filtres complètement ouvert pour l'instant, mais va maintenant coder le filtre directement dans la fonction Lambda lik e Dashmug suggéré. Au moins, je peux diviser un journal en deux groupes ES.
Merci à tous!
Intéressant. J'ai rencontré cette limitation de CloudFormation. C'est étrange que la CLI le permette. – dashmug
Malheureusement, cette solution ne semble pas fonctionner: Une erreur est survenue (LimitExceededException) lors de l'appel de l'opération PutSubscriptionFilter: Limite de ressource dépassée. Donc, le même message que nous recevons sur la console. – nukalov