Usar constructos condicionais no AWSTOE - EC2Image Builder

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar constructos condicionais no AWSTOE

Os constructos condicionais realizam diferentes ações no documento do componente dependendo de a expressão condicional especificada ser avaliada como true ou false. Você pode usar o constructo if para controlar o fluxo de execução no documento do componente.

Constructo “if”

Você pode usar o constructo if para avaliar se uma etapa deve ser executada ou não. Por padrão, quando a expressão condicional if é avaliada como true, o AWSTOE executa a etapa e, quando a condição é avaliada como false, o AWSTOE pula a etapa. Se uma etapa for ignorada, ela poderá ser tratada como bem-sucedida quando o AWSTOE avaliar se a fase e o documento foram executados com êxito.

nota

Uma instrução if só é avaliada uma vez, mesmo que a etapa acione uma reinicialização. Se uma etapa for reiniciada, ela reconhecerá que a instrução if já foi avaliada e continuará de onde parou.

Sintaxe

if: - <conditional expression>: [then: <step action>] [else: <step action>]
Nome da chave Obrigatório Descrição
Expressão condicional Sim

A expressão condicional pode conter exatamente um dos seguintes tipos de operador no nível superior.

  • Operador de comparação — Para obter uma lista de operadores de comparação e informações sobre como eles funcionam em documentos de AWSTOE componentes, consulteOperadores de comparação.

  • Operador lógico: os operadores lógicos incluem and, or e not e operam em um ou mais operadores de comparação. Para obter mais informações sobre como os operadores lógicos funcionam em documentos do componentes do AWSTOE , consulte Operadores lógicos.

Se sua expressão precisar satisfazer várias condições, use um operador lógico para especificar suas condições.

then Não

Define a ação a ser executada se a expressão condicional for avaliada como true.

else Não

Define a ação a ser executada se a expressão condicional for avaliada como false.

ações de etapa Condicional

Ao usar then ou else, você deve especificar uma das seguintes ações de etapa:

  • Anular: o AWSTOE marca a etapa como com falha.

  • Executar: o AWSTOE executa a etapa.

  • Ignorar: o AWSTOE pula a etapa.

Exemplo 1: instalar um pacote

As etapas de exemplo a seguir de um documento de AWSTOE componente usam operadores lógicos para testar um valor de parâmetro e executar os comandos apropriados do gerenciador de pacotes para instalar um aplicativo se o pacote for descompactado.

- name: InstallUnzipAptGet action: ExecuteBash if: and: - binaryExists: 'apt-get' - not: binaryExists: 'unzip' inputs: commands: - sudo apt-get update - sudo apt-get install -y unzip - name: InstallUnzipYum action: ExecuteBash if: and: - binaryExists: 'yum' - not: binaryExists: 'unzip' inputs: commands: - sudo yum install -y unzip - name: InstallUnzipZypper action: ExecuteBash if: and: - binaryExists: 'zypper' - not: binaryExists: 'unzip' inputs: commands: - sudo zypper refresh - sudo zypper install -y unzip
Exemplo 2: ignorar uma etapa

O exemplo a seguir mostra duas maneiras de pular uma etapa. Uma usa um operador lógico e a outra usa um operador de comparação com a ação de etapa Skip.

# Creates a file if it does not exist using not - name: CreateMyConfigFile-1 action: ExecuteBash if: not: fileExists: '/etc/my_config' inputs: commands: - echo "Hello world" > '/etc/my_config' # Creates a file if it does not exist using then and else - name: CreateMyConfigFile-2 action: ExecuteBash if: fileExists: '/etc/my_config' then: Skip else: Execute inputs: commands: - echo "Hello world" > '/etc/my_config'