Trasformazione AWS::Serverless - AWS CloudFormation

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

Per ulteriori informazioni sull'utilizzo della AWS::Serverless trasformazione, consulta transform on.AWS SAM GitHub

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 (MyApi.Stage), usatela per generare il riferimento Fn::Sub all'ID logico. Ad esempio, "Ref": {"Fn::Sub": "${MyApi}${StageName}Stage"}. Questo crea l'ID logico corretto in fase di esecuzione.

Il motivo di questo formato speciale è che queste due trasformazioni gestiscono i valori in modo diverso:

  • AWS::LanguageExtensionsrisolve le funzioni intrinseche ai loro valori effettivi.

  • AWS::Serverlesscrea logiche diverse IDs a seconda che riceva un valore statico o una funzione intrinseca.

Per ulteriori informazioni sulle applicazioni serverless e sul Serverless Application Model AWS (AWS SAM), consulta la Developer Guide.AWS Serverless Application Model

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.