Devo spedire i miei registri di cloudwatch a un servizio di analisi dei registri.Terraform: configurazione della consegna dell'abbonamento del log di cloudwatch a lambda?
Ho seguito insieme a questi articoli here e here e ho funzionato a mano, senza preoccupazioni.
Ora sto cercando di automatizzare tutto questo con Terraform (ruoli/criteri, gruppi di sicurezza, gruppo di log di cloudwatch, lambda e attivazione del lambda dal gruppo di log).
Ma non riesco a capire come utilizzare TF per configurare AWS per avviare il lambda dai registri di cloudwatch.
posso collegare le due risorse TF insieme a mano nel modo seguente (nella Lambda console Web UI):
- andare in sezione "trigger" della funzione lambda
- clic su "Aggiungi trigger"
- selezionare "i log CloudWatch" dall'elenco dei tipi di trigger
- selezionare il gruppo di registro voglio innescare la lambda
- immettere un nome di filtro
- lasciare il disegno filtro vuoto (trigger che implica su tutti i flussi di log)
- assicurarsi "abilitazione grilletto" è selezionato
- clic
il pulsante di invio Una volta fatto, il lambda si presenta sui tronchi CloudWatch console nella colonna delle iscrizioni - viene visualizzato come "Lambda (cloudwatch-sumologic-lambda)".
ho cercato di creare l'abbonamento con la seguente risorsa TF:
resource "aws_cloudwatch_log_subscription_filter" "cloudwatch-sumologic-lambda-subscription" {
name = "cloudwatch-sumologic-lambda-subscription"
role_arn = "${aws_iam_role.jordi-waf-cloudwatch-lambda-role.arn}"
log_group_name = "${aws_cloudwatch_log_group.jordi-waf-int-app-loggroup.name}"
filter_pattern = "logtype test"
destination_arn = "${aws_lambda_function.cloudwatch-sumologic-lambda.arn}"
}
ma non riesce con:
* aws_cloudwatch_log_subscription_filter.cloudwatch-sumologic-lambda-subscription: InvalidParameterException: destinationArn for vendor lambda cannot be used with roleArn
ho trovato this answer sull'impostazione di una cosa simile per un evento programmato, ma ciò non sembra essere equivalente a ciò che le azioni della console ho descritto sopra (il metodo UI della console non crea un evento/regola che posso vedere).
Qualcuno può darmi un puntatore su cosa sto facendo male, per favore?
E 'difficile vedere esattamente, ma sembra che AWS sta dicendo che il ruolo che hai assegnato a PutSubscriptionFilter non ha accesso a Lambda. Puoi anche pubblicare la definizione della risorsa 'aws_iam_role.jordi-waf-cloudwatch-lambda-role.arn'? – ydaetskcoR