Risorse - AWS CloudFormation

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à.

Risorse

La Resources sezione richiesta dichiara le AWS risorse che desideri includere nello stack, come un'istanza Amazon EC2 o un bucket Amazon S3.

Sintassi

La sezione Resources è composta dal nome di chiave Resources. Il seguente pseudomodello definisce la sezione Resources:

JSON

"Resources" : { "Logical ID of resource" : { "Type" : "Resource type", "Properties" : { Set of properties } } }

YAML

Resources: Logical ID of resource: Type: Resource type Properties: Set of properties

Campi delle risorse

ID logico (chiamato anche nome logico)

L'ID logico deve essere un valore alfanumerico (A-Z, a-z, 0-9) univoco all'interno del modello. Utilizza il nome logico per fare riferimento alla risorsa in altre parti del modello. Ad esempio, se desideri mappare un volume Amazon Elastic Block Store a un'istanza Amazon EC2, fai riferimento agli ID logici per associare gli archivi di blocchi all'istanza.

Oltre agli ID logici, alcune risorse dispongono anche di un ID fisico, che è l'effettivo nome assegnato alla risorsa, ad esempio un ID dell'istanza EC2 o un nome di bucket S3. Utilizza gli ID fisici per identificare le risorse esterne ai AWS CloudFormation modelli, ma solo dopo che le risorse sono state create. Ad esempio, supponiamo di assegnare l'ID logico MyEC2Instance a una risorsa dell'istanza EC2. Quando AWS CloudFormation crea l'istanza, genera e assegna AWS CloudFormation automaticamente un ID fisico (ad esempioi-28f9ba55) all'istanza. Puoi usare questo ID fisico per identificare l'istanza e visualizzare le relative proprietà (ad esempio, il nome DNS) tramite la console Amazon EC2. Per le risorse che supportano nomi personalizzati, puoi assegnare i nomi personalizzati (ID fisici) per semplificare e velocizzare l'individuazione delle risorse. Ad esempio, puoi denominare un bucket S3 che memorizza i log con il nome MyPerformanceLogs. Per ulteriori informazioni, consulta Tipo di nome.

Tipo di risorsa

Il tipo di risorsa identifica il tipo di risorsa che stai dichiarando. Ad esempio, AWS::EC2::Instance dichiara un'istanza EC2. Per un elenco di tutti i tipi di risorse, consulta AWS riferimento ai tipi di risorse e proprietà.

Proprietà delle risorse

Le proprietà delle risorse sono opzioni aggiuntive che puoi specificare per una risorsa. Ad esempio, per ogni istanza EC2 devi specificare un ID Amazon Machine Image (AMI) per tale istanza. Puoi dichiarare l'ID AMI come proprietà dell'istanza, come nell'esempio seguente:

Esempio JSON
"Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-0ff8a91507f77f867" } } }
Esempio YAML
Resources: MyEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-0ff8a91507f77f867"

Se una risorsa non richiede la dichiarazione delle proprietà, puoi omettere la sezione Properties (Proprietà) per tale risorsa.

I valori delle proprietà possono essere stringhe letterali, elenchi di stringhe, valori booleani, riferimenti a parametri, pseudoriferimenti oppure il valore restituito da una funzione. L'esempio seguente mostra come dichiarare diversi tipi di valori di proprietà:

Esempio JSON
"Properties" : { "String" : "one-string-value", "Number" : 123, "LiteralList" : [ "first-value", "second-value" ], "Boolean" : true, "ReferenceForOneValue" : { "Ref" : "MyLogicalResourceName" } , "FunctionResultWithFunctionParams" : { "Fn::Join" : [ "%", [ "Key=", { "Ref" : "MyParameter" } ] ] } }
Esempio YAML
Properties: String: OneStringValue String: A longer string value Number: 123 LiteralList: - "[first]-string-value with a special characters" - "[second]-string-value with a special characters" Boolean: true ReferenceForOneValue: Ref: MyLogicalResourceName ReferenceForOneValueShortCut: !Ref MyLogicalResourceName FunctionResultWithFunctionParams: !Sub | Key=%${MyParameter}

Puoi creare una risorsa in modo condizionale associando una condizione. Devi definire la condizione nella sezione Conditions del modello.

Esempi

Il seguente esempio mostra una dichiarazione della risorsa. Vengono definite due risorse. La risorsa MyInstance include la risorsa MyQueue come parte della relativa proprietà UserData:

JSON

"Resources" : { "MyInstance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [ "Queue=", { "Ref" : "MyQueue" } ] ] } }, "AvailabilityZone" : "us-east-1a", "ImageId" : "ami-0ff8a91507f77f867" } }, "MyQueue" : { "Type" : "AWS::SQS::Queue", "Properties" : { } } }

YAML

Resources: MyInstance: Type: "AWS::EC2::Instance" Properties: UserData: "Fn::Base64": !Sub | Queue=${MyQueue} AvailabilityZone: "us-east-1a" ImageId: "ami-0ff8a91507f77f867" MyQueue: Type: "AWS::SQS::Queue" Properties: {}