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à.
cfn-signal
Descrizione
Lo script di supporto cfn-signal indica se CloudFormation le EC2 istanze Amazon sono state create o aggiornate con successo. Se installi e configuri applicazioni software sulle istanze, puoi segnalare CloudFormation quando tali applicazioni software sono pronte.
Puoi utilizzare lo script cfn-signal in combinazione con un Attributo CreationPolicy o un gruppo Auto Scaling con una policy di aggiornamento WaitOnResourceSignals. Quando CloudFormation crea o aggiorna risorse con tali policy, sospende il lavoro sullo stack fino a quando la risorsa non riceve il numero richiesto di segnali o fino al superamento del periodo di timeout. Per ogni segnale valido che CloudFormation riceve, CloudFormation pubblica i segnali nello stack events in modo da tenere traccia di ogni segnale. Per una procedura guidata che utilizza una policy di creazione e cfn-signal, consulta Distribuisci applicazioni su Amazon EC2.
Nota
cfn-signal non richiede credenziali, perciò non è necessario utilizzare le opzioni --access-key
, --secret-key
,--role
o --credential-file
. Tuttavia, se non viene specificata alcuna credenziale, CloudFormation verifica l'appartenenza allo stack e limita l'ambito della chiamata allo stack a cui appartiene l'istanza.
Sintassi per la segnalazione della risorsa (consigliata)
Se desideri segnalare CloudFormation le risorse, usa la seguente sintassi.
cfn-signal --success|-s
signal.to.send
\ --access-keyaccess.key
\ --credential-file|-fcredential.file
\ --exit-code|-eexit.code
\ --http-proxyHTTP.proxy
\ --https-proxyHTTPS.proxy
\ --id|-iunique.id
\ --regionAWS.region
\ --resourceresource.logical.ID
\ --roleIAM.role.name
\ --secret-keysecret.key
\ --stackstack.name.or.stack.ID
\ --urlAWS CloudFormation.endpoint
Sintassi per l'uso con handle di condizione di attesa
Se desideri segnalare un handle di condizione di attesa, utilizza la sintassi seguente.
cfn-signal --success|-s
signal.to.send
\ --reason|-rresource.status.reason
\ --data|-ddata
\ --id|-iunique.id
\ --exit-code|-eexit.code
\waitconditionhandle.url
Opzioni
Le opzioni che puoi utilizzare dipendono dalla segnalazione di una policy di creazione o di una condizione di attesa. Alcune opzioni che si applicano a una policy di creazione potrebbero non essere applicabili a una condizione di attesa.
Nome | Descrizione | Richiesto |
---|---|---|
|
AWS chiave di accesso per un account con il permesso di chiamare il CloudFormation Tipo: Stringa |
No |
|
Dati per l'invio con Tipo: Stringa Default: vuoto |
No |
|
Il codice di errore da parte di un processo che può essere utilizzato per determinare un esito positivo o negativo. Se specificato, l'opzione Tipo: Stringa Esempi: |
No |
|
Un file che contiene sia una chiave di accesso segreta sia una chiave di accesso. Il parametro del file delle credenziali sostituisce i parametri di ruolo, chiave di accesso e chiave segreta. Tipo: Stringa |
No |
|
Un HTTP proxy (non-SSL). Utilizza il seguente formato: Tipo: Stringa |
No |
|
Un HTTPS proxy. Utilizza il seguente formato: Tipo: Stringa |
No |
|
ID univoco per l'invio. Tipo: Stringa Predefinito: l'ID dell'EC2istanza Amazon. Se l'ID non può essere risolto, viene restituito il Fully Qualified Domain Name (FQDN) della macchina. |
No |
|
Un motivo dello stato per l'evento della risorsa (attualmente utilizzato solo in caso di errore) - viene impostato su "Configurazione non riuscita" se il successo è false. Tipo: Stringa |
No |
--region (solo per la segnalazione della risorsa) |
L'endpoint CloudFormation regionale da utilizzare. Tipo: Stringa Default: |
No |
--resource (solo per la segnalazione della risorsa) |
L'ID logico della risorsa che contiene la policy della creazione che vuoi segnalare. Tipo: Stringa |
Sì |
|
Il nome di un IAM ruolo associato all'istanza. Tipo: Stringa Condizione: il parametro del file delle credenziali sostituisce questo parametro. |
No |
|
Se è true, il segnale è Tipo: Booleano Default: |
No |
|
AWS chiave di accesso segreta che corrisponde alla chiave di AWS accesso specificata. Tipo: Stringa |
No |
|
Il nome dello stack o l'ID dello stack che contiene la risorsa da segnalare. Tipo: Stringa |
Sì |
-u, --url (solo per la segnalazione della risorsa) |
L' CloudFormation endpoint da usare. Tipo: Stringa |
No |
|
Un preassegnato URL che è possibile utilizzare per segnalare l'esito positivo o negativo di un dispositivo associato Tipo: Stringa |
Sì |
Esempio
Esempio Amazon Linux
Un modello di utilizzo comune è utilizzare cfn-init e cfn-signal insieme. La chiamata cfn-signal utilizza lo stato restituito della chiamata per cfn-init (tramite la configurazione shell $?). Se l'applicazione non è in grado di installarsi, l'istanza non è in grado di creare e lo stack sarà sottoposto a rollback. Per gli stack di Windows, consulta Avvio degli stack di Windows AWS CloudFormation.
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Simple EC2 instance", "Resources": { "MyInstance": { "Type": "AWS::EC2::Instance", "Metadata": { "AWS::CloudFormation::Init": { "config": { "files": { "/tmp/test.txt": { "content": "Hello world!", "mode": "000755", "owner": "root", "group": "root" } } } } }, "Properties": { "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}", "InstanceType": "t2.micro", "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -x\n", "# Install the files and packages from the metadata\n", "yum install -y aws-cfn-bootstrap", "\n", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource MyInstance ", " --region ", { "Ref": "AWS::Region" }, "\n", "# Signal the status from cfn-init\n", "/opt/aws/bin/cfn-signal -e $? ", " --stack ", { "Ref": "AWS::StackName" }, " --resource MyInstance ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }, "CreationPolicy": { "ResourceSignal": { "Timeout": "PT5M" } } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Description: Simple EC2 instance Resources: MyInstance: Type: 'AWS::EC2::Instance' Metadata: 'AWS::CloudFormation::Init': config: files: /tmp/test.txt: content: Hello world! mode: '000755' owner: root group: root Properties: ImageId: {{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}} InstanceType: t2.micro UserData: !Base64 'Fn::Join': - '' - - | #!/bin/bash -x - | # Install the files and packages from the metadata - yum install -y aws-cfn-bootstrap - |+ - | - '/opt/aws/bin/cfn-init -v ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource MyInstance ' - ' --region ' - !Ref 'AWS::Region' - |+ - | # Signal the status from cfn-init - '/opt/aws/bin/cfn-signal -e $? ' - ' --stack ' - !Ref 'AWS::StackName' - ' --resource MyInstance ' - ' --region ' - !Ref 'AWS::Region' - |+ CreationPolicy: ResourceSignal: Timeout: PT5M
Risorse correlate
Diversi modelli CloudFormation di esempio utilizzano cfn-signal, inclusi i seguenti modelli.