Desidero creare una funzione AWS Lambda in un account e quindi richiamarla da una risorsa personalizzata di AWS CloudFormation in un altro account.
Descrizione breve
Puoi richiamare una funzione Lambda da una risorsa personalizzata in un altro account solo se la funzione e la risorsa si trovano nella stessa regione AWS. La proprietà ServiceToken di AWS::CloudFormation::CustomResource deve trovarsi nella stessa regione in cui hai creato lo stack AWS CloudFormation. È necessario utilizzare una policy basata sulle risorse per concedere agli account con risorse personalizzate l'autorizzazione a richiamare la funzione Lambda.
Nota: quando si associa una funzione Lambda a una risorsa personalizzata, la risorsa personalizzata richiama la funzione ogni volta che viene creata, aggiornata o eliminata. CloudFormation chiama un'API Lambda per passare tutti i dati della richiesta, come il tipo di richiesta e le proprietà delle risorse, alla funzione.
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Esegui il comando AWS CLI add-permission nel tuo account principale (Account A). Il comando consente alla funzione Lambda di accedere alla risorsa personalizzata in un altro account (Account B).
-oppure-
Usa la risorsa AWS::Lambda::Permission per concedere all'Account B il permesso di richiamare la funzione Lambda nell'Account A:
- Quando viene creata una funzione Lambda tramite uno stack nell'Account A, utilizza la risorsa AWS::Lambda::Permission per concedere l'autorizzazione all'Account B.
- Nell'Account B, avvia lo stack AWS CloudFormation che contiene la tua risorsa personalizzata.
Nota: assicurati che ServiceToken si riferisca al nome della risorsa Amazon (ARN) della funzione Lambda dell'Account A. Includi eventuali proprietà aggiuntive da inviare alla risorsa personalizzata come input.
- Usa Amazon CloudWatch Logs per confermare che la tua risorsa personalizzata dell'Account B abbia richiamato la tua funzione Lambda nell'Account A.
Informazioni correlate
Granting function access to other accounts