Come ottenere streamArn di una tabella dynamodb creata manualmente in CloudFormation

Aug 18 2020

Sto cercando di creare un modello cloudformation per distribuire un lambda e questo lambda avrà DynamoDB come trigger. Quindi, per adattarlo, sto usando AWS::Lambda::EventSourceMapping nel mio modello cloudformation e codificando EventSourceArn per ogni tabella dynamodb.

La mia domanda, c'è un modo per ottenere streamArn di una tabella DynamoDB esistente, che viene creata manualmente? o devo passare questo valore hardcoded dalla sezione dei parametri.

Per favore aiutami con i tuoi consigli.

Risposte

1 TraychoIvanov Aug 18 2020 at 00:58

Tutte le cose che crei manualmente sono disponibili nella console AWS e puoi controllare tutti gli arns.

Per il tuo caso specifico vai a AWS Console -> DynamoDB -> Select your table.

Nota: consiglierei di utilizzare cloudformation ed evitare di utilizzare cose manuali se questo viene distribuito da qualche parte per davvero.

ChrisWilliams Aug 18 2020 at 00:51

Non esiste alcuna funzionalità nativa di CloudFormation per recuperare la risorsa Arns creata manualmente, ad eccezione di alcuni tipi di parametri .

Se intendi mantenere questa risorsa come risorsa creata manualmente, dovrai passare come parametro nel tuo modello in modo da poterla fare riferimento, facendo riferimento a una stringa o a un parametro basato su SSM .

In alternativa, puoi costruire una risorsa personalizzata che accetti il ​​nome della tabella DynamoDB come parametro e attivi Lambda per ottenere l'Arn del flusso.

Se si desidera gestire la tabella in CloudFormation, è possibile costruire la risorsa nel modello CloudFormation e quindi importarla nello stack . In questo modo puoi quindi fare riferimento alla risorsa StreamArndella tabella DynamoDB .