Questa è la nuova guida AWS CloudFormation di riferimento per i modelli. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida per l'AWS CloudFormation utente.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Trasformazione AWS::Serverless
Questo argomento descrive come utilizzare la AWS::Serverless
trasformazione per elaborare un modello scritto nella sintassi AWS Serverless Application Model (AWS SAM) e trasformarlo in un modello conforme. CloudFormation
Utilizzo
Per utilizzare la AWS::Serverless
trasformazione, è necessario dichiararla al livello più alto del CloudFormation modello. Non è possibile utilizzare AWS::Serverless
come trasformazione incorporata in qualsiasi altra sezione del modello.
La dichiarazione deve utilizzare la stringa letterale AWS::Serverless-2016-10-31
come valore. Non è possibile utilizzare un parametro o una funzione per specificare un valore di trasformazione.
Sintassi
Per dichiarare questa trasformazione nel CloudFormation modello, utilizzate la seguente sintassi:
JSON
{ "Transform":"AWS::Serverless-2016-10-31", "Resources":{
...
} }
YAML
Transform: AWS::Serverless-2016-10-31 Resources:
...
La AWS::Serverless
trasformazione è una dichiarazione autonoma senza parametri aggiuntivi.
Esempi
Gli esempi seguenti mostrano come utilizzare la AWS::Serverless
trasformazione e la AWS SAM sintassi per semplificare la dichiarazione di una funzione Lambda e il relativo ruolo di esecuzione.
JSON
{ "Transform":"AWS::Serverless-2016-10-31", "Resources":{ "MyFunction":{ "Type":"AWS::Serverless::Function", "Properties":{ "Handler":"
index.handler
", "Runtime":"nodejs20.x
", "CodeUri":"s3://amzn-s3-demo-bucket/MySourceCode.zip
" } } } }
YAML
Transform: AWS::Serverless-2016-10-31 Resources: MyFunction: Type: AWS::Serverless::Function Properties: Handler:
index.handler
Runtime:nodejs20.x
CodeUri: 's3://amzn-s3-demo-bucket/MySourceCode.zip
'
Quando si crea un set di modifiche dal modello, CloudFormation espande la AWS SAM sintassi, come definita dalla trasformazione. Il modello elaborato espande la AWS::Serverless::Function
risorsa, dichiarando una funzione Lambda e un ruolo di esecuzione.
{ "Resources": { "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Handler": "
index.handler
", "Code": { "S3Bucket": "amzn-s3-demo-bucket
", "S3Key": "MySourceCode.zip
" }, "Role": { "Fn::GetAtt": ["MyFunctionRole", "Arn"] }, "Runtime": "nodejs20.x
" } }, "MyFunctionRole": { "Type": "AWS::IAM::Role", "Properties": { "ManagedPolicyArns": ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"], "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": { "Service": ["lambda.amazonaws.com"] } }] } } } } }
Uso di AWS::Serverless
con AWS::LanguageExtensions
Quando si utilizzano entrambe AWS::Serverless
le AWS::LanguageExtensions
trasformazioni, il riferimento a risorse come AWS::ApiGateway::Stage
richiede una sintassi speciale quando il nome dello stadio viene passato come valore non parametrico. NoEcho
Invece di usare la AWS SAM sintassi per reference (
), usatela per generare il riferimento MyApi
.StageFn::Sub
all'ID logico. Ad esempio, "Ref": {"Fn::Sub":
. Questo crea l'ID logico corretto in fase di esecuzione."${
${MyApi
}StageName
}Stage"}
Il motivo di questo formato speciale è che queste due trasformazioni gestiscono i valori in modo diverso:
-
AWS::LanguageExtensions
risolve le funzioni intrinseche ai loro valori effettivi. -
AWS::Serverless
crea logiche diverse IDs a seconda che riceva un valore statico o una funzione intrinseca.
Risorse correlate
Per i tipi di risorse e proprietà specifici AWS SAM, consulta AWS SAM le risorse e le proprietà nella Guida per gli AWS Serverless Application Model sviluppatori.
Per informazioni generali sull'uso delle macro, consulta Eseguire l'elaborazione personalizzata sui CloudFormation modelli con le macro dei modelli nella Guida per l'AWS CloudFormation utente.