

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

# Exemplos de ações do ciclo de vida do nó para AWS PEÇAS
<a name="cng-node-lifecycle-actions-examples"></a>

Os exemplos a seguir usam o AWS CLI para configurar ações do ciclo de vida do nó. Você pode definir ações do ciclo de vida ao criar um grupo de nós de computação com`create-compute-node-group`, adicioná-las ou alterá-las em um grupo de nós de computação existente com. `update-compute-node-group` O `--node-lifecycle-actions` valor é o mesmo para os dois comandos.

## Vários scripts em todos os estágios
<a name="cng-node-lifecycle-actions-examples-multiple"></a>

Este exemplo combina scripts em ambos os estágios do ciclo de vida com diferentes políticas de execução e comportamentos de erro.

```
aws pcs create-compute-node-group --region {{region}} \
  --cluster-identifier {{my-cluster}} \
  --compute-node-group-identifier {{my-cng}} \
  --subnet-ids {{subnet-ExampleID1}} \
  --custom-launch-template id={{lt-ExampleID1}},version='{{1}}' \
  --iam-instance-profile-arn={{arn:InstanceProfile}} \
  --scaling-config minInstanceCount={{0}},maxInstanceCount={{10}} \
  --instance-configs instanceType={{t3.large}} \
  --node-lifecycle-actions '{
    "stages": {
      "nodeBootstrapped": [
        { "name": "Mount FSx Lustre", "scriptSource": { "scriptLocation": "s3://{{my-bucket}}/mount-fsx.sh" }, "arguments": ["fs-{{0abc123}}", "/scratch"], "executionPolicy": "EVERY_BOOT" },
        { "name": "Join Active Directory", "scriptSource": { "scriptLocation": "s3://{{my-bucket}}/configure-ad.sh" }, "arguments": ["ad.example.com", "EXAMPLE"], "executionPolicy": "FIRST_BOOT_ONLY" }
      ],
      "nodeReady": [
        { "name": "Configure CloudWatch logging", "scriptSource": { "scriptLocation": "s3://{{my-bucket}}/setup-cloudwatch.sh" }, "arguments": ["/aws/pcs/{{my-cluster}}"], "onError": "CONTINUE" }
      ]
    }
  }'
```

## Comportamento de erro misto
<a name="cng-node-lifecycle-actions-examples-mixed-error"></a>

Este exemplo usa scripts críticos e opcionais no mesmo estágio. O primeiro encerra o nó em caso de falha; o segundo continua.

```
aws pcs create-compute-node-group --region {{region}} \
  --cluster-identifier {{my-cluster}} \
  --compute-node-group-identifier {{my-cng}} \
  --subnet-ids {{subnet-ExampleID1}} \
  --custom-launch-template id={{lt-ExampleID1}},version='{{1}}' \
  --iam-instance-profile-arn={{arn:InstanceProfile}} \
  --scaling-config minInstanceCount={{0}},maxInstanceCount={{10}} \
  --instance-configs instanceType={{t3.large}} \
  --node-lifecycle-actions '{
    "stages": {
      "nodeBootstrapped": [
        { "name": "Install required packages", "scriptSource": { "scriptLocation": "s3://{{my-bucket}}/install-packages.sh" }, "onError": "TERMINATE" },
        { "name": "Install optional tools", "scriptSource": { "scriptLocation": "s3://{{my-bucket}}/install-optional.sh" }, "onError": "CONTINUE" }
      ]
    }
  }'
```

## Validação de integridade com uma soma de verificação
<a name="cng-node-lifecycle-actions-examples-checksum"></a>

Adiciona uma SHA-256 soma de verificação para que o agente rejeite um script se seu conteúdo não corresponder.

```
aws pcs update-compute-node-group \
  --cluster-identifier {{my-cluster}} \
  --compute-node-group-identifier {{my-cng}} \
  --node-lifecycle-actions '{
    "stages": {
      "nodeBootstrapped": [
        {
          "name": "Mount EFS",
          "scriptSource": {
            "scriptLocation": "s3://{{my-bucket}}/mount-efs.sh",
            "checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
          },
          "arguments": ["fs-{{12345678}}", "/shared"]
        }
      ]
    }
  }'
```

## Habilitar a atualização do script na reinicialização
<a name="cng-node-lifecycle-actions-examples-refresh"></a>

Define `scriptCachingPolicy` como`REFRESH_ON_REBOOT`. Essa `UpdateComputeNodeGroup` chamada é uma alteração de configuração, portanto, ela drena e substitui as instâncias existentes. Após a conclusão da substituição, as instâncias baixam novamente os scripts em cada reinicialização. Em seguida, você pode atualizar o conteúdo do script no Amazon S3 e as instâncias captam a alteração na próxima reinicialização sem nenhuma chamada de API adicional.

```
aws pcs update-compute-node-group \
  --cluster-identifier {{my-cluster}} \
  --compute-node-group-identifier {{my-cng}} \
  --node-lifecycle-actions '{
    "stages": { "nodeBootstrapped": [ { "name": "Mount EFS", "scriptSource": { "scriptLocation": "s3://{{my-bucket}}/mount-efs.sh" }, "arguments": ["fs-{{12345678}}", "/shared"], "executionPolicy": "EVERY_BOOT" } ] },
    "scriptCachingPolicy": "REFRESH_ON_REBOOT"
  }'
```

## Migrando das ações de ParallelCluster bootstrap da AWS
<a name="cng-node-lifecycle-actions-examples-migrate"></a>

Muitos scripts de AWS ParallelCluster bootstrap existentes funcionam como estão com as ações do ciclo de vida do AWS PCS. AWS O PCS fornece tratamento de erros por script (`TERMINATE`,`STOP_SEQUENCE`, ou`CONTINUE`) e controle de reinicialização (`FIRST_BOOT_ONLY`ou`EVERY_BOOT`). O padrão do AWS PCS é`FIRST_BOOT_ONLY`. Para combinar ParallelCluster o comportamento (executar em cada inicialização), `executionPolicy` defina como`EVERY_BOOT`.


| **AWS ParallelCluster** | **AWS PCS ** | 
| --- | --- | 
| `OnNodeStart` | `nodeBootstrapped`(é executado após a fase de configuração do AWS PCS, antes`slurmd`) | 
| `OnNodeConfigured` | `nodeReady`(é executado após o registro do nó no controlador Slurm) | 
| `OnNodeUpdated` | Sem equivalente ao AWS PCS | 