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

Resources

La Resources sezione richiesta dichiara le AWS risorse che desideri includere nello stack, come un'EC2istanza Amazon 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 EBS volume Amazon su un'EC2istanza Amazon, fai riferimento IDs alla logica per associare i block store all'istanza.

Oltre all'ID logico, alcune risorse hanno anche un ID fisico, che è il nome effettivo assegnato a quella risorsa, ad esempio un ID di EC2 istanza o il nome di un bucket S3. Usa quello fisico IDs per identificare le risorse al di fuori dei CloudFormation modelli, ma solo dopo che le risorse sono state create. Ad esempio, supponete di assegnare a una risorsa di EC2 istanza un ID logico diMyEC2Instance. Quando CloudFormation crea l'istanza, genera e assegna CloudFormation automaticamente un ID fisico (ad esempioi-28f9ba55) all'istanza. Puoi utilizzare questo ID fisico per identificare l'istanza e visualizzarne le proprietà (come il DNS nome) utilizzando la EC2 console Amazon. Per le risorse che supportano nomi personalizzati, puoi assegnare i tuoi nomi (fisiciIDs) per aiutarti a identificare rapidamente le risorse. Ad esempio, puoi denominare un bucket S3 che memorizza i log con il nome MyPerformanceLogs. Per ulteriori informazioni, consulta Tipo di nome.

Type

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

Properties

Le proprietà delle risorse sono opzioni aggiuntive che puoi specificare per una risorsa. Ad esempio, per ogni EC2 istanza, devi specificare un ID Amazon Machine Image (AMI) per quell'istanza. Dichiari l'AMIID come proprietà dell'istanza, come mostrato 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. È necessario definire la condizione nella sezione Condizioni 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: {}