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
Lo script di cfn-signal
supporto segnala CloudFormation se EC2 le 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.
Lo cfn-signal
script viene utilizzato in combinazione con un Attributo CreationPolicy o un Attributo UpdatePolicy with WaitOnResourceSignals
per i gruppi Amazon EC2 Auto Scaling. Quando CloudFormation crea o aggiorna risorse con tali policy, sospende il lavoro sullo stack finché la risorsa non riceve il numero di segnali richiesto o fino al superamento del periodo di timeout. Per ogni segnale valido che CloudFormation riceve, pubblica i segnali negli eventi dello stack in modo da consentire all'utente di tenere traccia di ogni segnale.
Argomenti
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
Nota
cfn-signal
non richiede credenziali, quindi non è necessario utilizzare le opzioni--access-key
, --secret-key
--role
, o--credential-file
. Tuttavia, se non viene specificata alcuna credenziale, CloudFormation verifica la sottoscrizione allo stack e limita l'ambito della chiamata allo stack a cui l'istanza appartiene. Per ulteriori informazioni, consulta Autorizzazioni per gli script helper.
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 autorizzazione a chiamare l' 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 proxy HTTP (non SSL). Utilizza il seguente formato: Tipo: Stringa |
No |
|
Un proxy HTTPS. Utilizza il seguente formato: Tipo: Stringa |
No |
|
ID univoco per l'invio. Tipo: Stringa Predefinito: l'ID dell' EC2 istanza Amazon. Se l'ID non può essere risolto, viene restituito il nome di dominio completo 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 ruolo IAM 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 URL prefirmato che puoi utilizzare per segnalare l'esito positivo o negativo a una Tipo: Stringa |
Sì |
Esempi
Esempio Amazon Linux
Un modello di utilizzo comune è quello di utilizzare cfn-init
e cfn-signal
insieme. La cfn-signal
chiamata utilizza lo stato di ritorno della chiamata a cfn-init
(utilizzando $? costruzione shell). Se l'applicazione non è in grado di installarsi, l'istanza non è in grado di creare e lo stack sarà sottoposto a rollback.
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
Puoi anche visitare il nostro GitHub repository per scaricare i modelli di esempio che utilizziamocfn-signal
, inclusi i seguenti modelli.