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á.
Módulos de ação compatíveis com o gerenciador de componentes do AWSTOE
Os serviços de criação de imagens, como o EC2 Image Builder, usam módulos de AWSTOE ação para ajudar a configurar as EC2 instâncias usadas para criar e testar imagens de máquina personalizadas. Esta seção descreve os recursos dos módulos de AWSTOE ação mais usados e como configurá-los, incluindo exemplos.
Os componentes são criados com documentos de texto simplesYAML. Para obter mais informações sobre sintaxe de documentos, consulte Use a estrutura de documentos de AWSTOE componentes para componentes personalizados.
nota
Todos os módulos de ação usam a mesma conta do atendente do Systems Manager quando são executados, os quais são root
, no Linux, e NT Authority\SYSTEM
, no Windows.
A referência cruzada a seguir categoriza os módulos de ação pelo tipo de ação que eles executam.
Execução geral
Download e upload de arquivos
Operações do sistema de arquivos
Ações de instalação de software
Ações do sistema
Módulos de execução geral
A seção a seguir contém detalhes dos módulos de ação que executam comandos e controlam o fluxo de trabalho de execução.
Módulos de execução geral
Afirmar
O módulo de ação Assert realiza comparações de valores usando Operadores de comparação ou Operadores lógicos como entrada. O resultado da expressão do operador (verdadeiro ou falso) indica o status geral de sucesso ou falha da etapa.
Se a comparação ou a expressão do operador lógico for avaliada comotrue
, a etapa será marcada comoSuccess
. Caso contrário, a etapa será marcada comoFailed
. Se a etapa falhar, o onFailure
parâmetro decide o resultado da etapa.
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
input |
Contém um único operador lógico ou de comparação. Observe que os operadores lógicos podem conter mais de um operador de comparação. | Isso é variável, dependendo do operador | Sim |
Exemplo de entrada: uma comparação simples usando o operador stringEquals
de comparação
Este exemplo avalia como. true
- name: StringComparison action: Assert inputs: stringEquals: '2.1.1' value: '{{ validate.ApplicationVersion.outputs.stdout }}'
Exemplo de entrada: comparações Regex usando o operador de comparação patternMatches
Todos esses exemplos são avaliados comotrue
.
- name: Letters only action: Assert inputs: patternMatches: '^[a-zA-Z]+$' value: 'ThisIsOnlyLetters' - name: Letters and spaces only action: Assert inputs: patternMatches: '^[a-zA-Z\s]+$' value: 'This text contains spaces' - name: Numbers only action: Assert inputs: patternMatches: '^[0-9]+$' value: '1234567890'
Exemplo de entrada: comparações aninhadas com operadores lógicos e variáveis encadeadas
O exemplo a seguir demonstra comparações aninhadas com operadores lógicos que usam comparações com variáveis encadeadas. Ele Assert
avalia true
se alguma das seguintes afirmações é verdadeira:
-
O
ApplicationVersion
é maior que2.0
e oCPUArchitecture
igualarm64
. -
Os
CPUArchitecture
iguaisx86_64
.
- name: NestedComparisons action: Assert inputs: or: # <- first level deep - and: # <- second level deep - numberGreaterThan: 2.0 # <- third level deep value: '{{ validate.ApplicationVersion.outputs.stdout }}' - stringEquals: 'arm64' value: '{{ validate.CPUArchitecture.outputs.stdout }}' - stringEquals: 'x86_64' value: '{{ validate.CPUArchitecture.outputs.stdout }}'
Saída:
A saída de um Assert
é o sucesso ou o fracasso da etapa.
ExecuteBash
O módulo de ExecuteBashação permite que você execute scripts bash com códigos/comandos de shell embutidos. Este módulo é compatível com Linux.
Todos os comandos e instruções que você especifica no bloco de comandos são convertidos em um arquivo (por exemplo, input.sh
) e executados com o bash shell. O resultado da execução do arquivo shell é o código de saída da etapa.
O ExecuteBashmódulo manipula as reinicializações do sistema se o script sair com um código de saída de. 194
Quando iniciado, o aplicativo executa uma das seguintes ações:
-
O aplicativo entrega o código de saída ao chamador se ele for executado pelo Systems Manager Agent. O Systems Manager Agent controla a reinicialização do sistema e executa a mesma etapa que iniciou a reinicialização, conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.
-
O aplicativo salva o
executionstate
atual, configura um gatilho de reinicialização para executar o aplicativo novamente e reinicia o sistema.
Após a reinicialização do sistema, o aplicativo executa a mesma etapa que iniciou a reinicialização. Se você precisar dessa funcionalidade, deverá escrever scripts idempotentes que possam lidar com várias invocações do mesmo comando shell.
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
commands |
Contém uma lista de instruções ou comandos a serem executados de acordo com a sintaxe do bash. Várias linhas YAML são permitidas. | Listar | Sim |
Exemplo de entrada: antes e depois de uma reinicialização
name: ExitCode194Example description: This shows how the exit code can be used to restart a system with ExecuteBash schemaVersion: 1.0 phases: - name: build steps: - name: RestartTrigger action: ExecuteBash inputs: commands: - | REBOOT_INDICATOR=/var/tmp/reboot-indicator if [ -f "${REBOOT_INDICATOR}" ]; then echo 'The reboot file exists. Deleting it and exiting with success.' rm "${REBOOT_INDICATOR}" exit 0 fi echo 'The reboot file does not exist. Creating it and triggering a restart.' touch "${REBOOT_INDICATOR}" exit 194
Campo | Descrição | Tipo |
---|---|---|
stdout |
Saída padrão da execução do comando. | string |
Se você iniciar uma reinicialização e retornar o código de saída 194
como parte do módulo de ação, a compilação será retomada na mesma etapa do módulo de ação que iniciou a reinicialização. Se você iniciar uma reinicialização sem o código de saída, o processo de compilação poderá falhar.
Exemplo de saída: antes da reinicialização (primeira vez no documento)
{ “stdout”: “The reboot file does not exist. Creating it and triggering a restart." }
Exemplo de saída: após a reinicialização, (segunda vez no documento)
{ “stdout”: “The reboot file exists. Deleting it and exiting with success." }
ExecuteBinary
O módulo de ExecuteBinaryação permite que você execute arquivos binários com uma lista de argumentos de linha de comando.
O ExecuteBinarymódulo manipula as reinicializações do sistema se o arquivo binário sair com um código de saída 194
(Linux) ou 3010
(Windows). Quando iniciado, o aplicativo executa uma das seguintes ações:
-
O aplicativo entrega o código de saída ao chamador se ele for executado pelo Systems Manager Agent. O Systems Manager Agent controla a reinicialização do sistema e executa a mesma etapa que começou a reinicialização, conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.
-
O aplicativo salva o
executionstate
atual, configura um gatilho de reinicialização para executar o aplicativo novamente e reinicia o sistema.
Após a reinicialização do sistema, o aplicativo executa a mesma etapa que iniciou a reinicialização. Se você precisar dessa funcionalidade, deverá escrever scripts idempotentes que possam lidar com várias invocações do mesmo comando shell.
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
path |
O caminho para o arquivo binário para execução. | String | Sim |
arguments |
Contém uma lista de argumentos de linha de comando a serem usados ao executar o binário. | Lista de strings | Não |
Exemplo de entrada: instalar. NET
- name: "InstallDotnet" action: ExecuteBinary inputs: path: C:\PathTo\dotnet_installer.exe arguments: - /qb - /norestart
Campo | Descrição | Tipo |
---|---|---|
stdout |
Saída padrão da execução do comando. | string |
Exemplo de saída
{ "stdout": "success" }
ExecuteDocument
O módulo de ExecuteDocumentação adiciona suporte para documentos de componentes aninhados, executando vários documentos de componentes a partir de um documento. AWSTOE valida o documento que é passado no parâmetro de entrada em tempo de execução.
Restrições
-
Esse módulo de ação é executado uma vez, sem permitir novas tentativas e sem a opção de definir limites de timeout. ExecuteDocumentdefine os seguintes valores padrão e retorna um erro se você tentar alterá-los.
-
timeoutSeconds
: -1 -
maxAttempts
: 1
nota
Você pode deixar esses valores em branco e AWSTOE usar os valores padrão.
-
-
O aninhamento de documentos é permitido, com até três níveis de profundidade, mas não mais do que isso. Três níveis de aninhamento se traduzem em quatro níveis de documentos, já que o nível superior não está aninhado. Nesse cenário, o documento de nível mais baixo não deve chamar nenhum outro documento.
-
A execução cíclica de documentos de componentes não é permitida. Qualquer documento que se chame fora de uma estrutura em loop, ou que chame outro documento mais alto na cadeia de execução atual, inicia um ciclo que pode resultar em um loop infinito. Quando o AWSTOE detecta uma execução cíclica, ele interrompe a execução e registra a falha.
Se um documento do componente tentar se executar sozinho ou executar qualquer um dos documentos do componente que estão mais acima na cadeia de execução atual, a execução falhará.
Entrada
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
document |
Caminho do documento do componente. Entre as opções válidas estão:
|
String | Sim |
document-s3-bucket-owner |
O ID da conta do proprietário do bucket do S3 onde são armazenados os documentos do componente. (Recomendado se você estiver usando o S3 URIs no documento do componente.) |
String | Não |
phases |
Fases a serem executadas no documento do componente, expressas como uma lista separada por vírgulas. Se nenhuma fase for especificada, todas as fases serão executadas. |
String | Não |
parameters |
Parâmetros de entrada que são passados para o documento do componente no runtime como pares valores-chave. |
Lista de mapas de parâmetros | Não |
Entrada do mapa de parâmetros
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
name |
O nome do parâmetro de entrada a ser passado para o documento do componente que o módulo de ExecuteDocumentação está executando. |
String | Sim |
value |
O valor do parâmetro de entrada. |
String | Sim |
Exemplos de entrada
Os exemplos a seguir mostram variações das entradas do documento do componente, dependendo do caminho de instalação.
Exemplo de entrada: caminho do documento local
# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: Sample-1.yaml phases: build parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
Exemplo de entrada: S3 URI como um caminho de documento
# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: s3://my-bucket/Sample-1.yaml document-s3-bucket-owner: 123456789012 phases: build,validate parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
Exemplo de entrada: componente EC2 Image Builder ARN como um caminho de documento
# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument inputs: document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0 phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
Usando um ForEach loop para executar documentos
# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument loop: name: 'myForEachLoop' forEach: - Sample-1.yaml - Sample-2.yaml inputs: document: "{{myForEachLoop.value}}" phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
Usando um loop For para executar documentos
# main.yaml schemaVersion: 1.0 phases: - name: build steps: - name: ExecuteNestedDocument action: ExecuteDocument loop: name: 'myForLoop' for: start: 1 end: 2 updateBy: 1 inputs: document: "Sample-{{myForLoop.value}}.yaml" phases: test parameters: - name: parameter-1 value: value-1 - name: parameter-2 value: value-2
Saída
AWSTOE cria um arquivo de saída chamado detailedoutput.json
toda vez que é executado. O arquivo contém detalhes sobre cada fase e etapa de cada documento do componente que é invocado durante a execução. Para o módulo de ExecuteDocumentação, você pode encontrar um breve resumo do tempo de execução no outputs
campo e detalhes sobre as fases, etapas e documentos executados nodetailedOutput
.
{ \"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\" }",
O objeto de resumo de saída de cada documento do componente contém os seguintes detalhes, conforme mostrado aqui, com valores de amostra:
-
executedStepCount“:1
-
““: executionId “12345a67-89bc-01de-2f34-abcd56789012"
-
“failedStepCount“:0
-
"failureMessage":""
-
“ignoredFailedStepContagem” :0
-
"logUrl":""
-
“status” :"sucesso”
Exemplo de saída
O exemplo a seguir mostra a saída do módulo de ExecuteDocumentação quando ocorre uma execução aninhada. Neste exemplo, o documento do componente main.yaml
executa com êxito o documento do componente Sample-1.yaml
.
{ "executionId": "12345a67-89bc-01de-2f34-abcd56789012", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "documents": [ { "name": "", "filePath": "main.yaml", "status": "success", "description": "", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "phases": [ { "name": "build", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "steps": [ { "name": "ExecuteNestedDocument", "status": "success", "failureMessage": "", "timeoutSeconds": -1, "onFailure": "Abort", "maxAttempts": 1, "action": "ExecuteDocument", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]", "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]", "loop": null, "detailedOutput": [ { "executionId": "98765f43-21ed-09cb-8a76-fedc54321098", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "documents": [ { "name": "", "filePath": "Sample-1.yaml", "status": "success", "description": "", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "phases": [ { "name": "build", "status": "success", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "failureMessage": "", "steps": [ { "name": "ExecuteBashStep", "status": "success", "failureMessage": "", "timeoutSeconds": 7200, "onFailure": "Abort", "maxAttempts": 1, "action": "ExecuteBash", "startTime": "2021-08-26T17:20:31-07:00", "endTime": "2021-08-26T17:20:31-07:00", "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]", "outputs": "[{\"stdout\":\"Hello World!\"}]", "loop": null, "detailedOutput": null }] }] }] }] }] }] }] }
ExecutePowerShell
O módulo de ExecutePowerShellação permite que você execute PowerShell scripts com códigos/comandos de shell embutidos. Este módulo oferece suporte à plataforma Windows e ao Windows PowerShell.
Todos os comandos/instruções especificados no bloco de comandos são convertidos em um arquivo de script (por exemplo,input.ps1
) e executados usando o Windows. PowerShell O resultado da execução do arquivo shell é o código de saída.
O ExecutePowerShellmódulo manipula as reinicializações do sistema se o comando shell sair com um código de saída de. 3010
Quando iniciado, o aplicativo executa uma das seguintes ações:
-
O aplicativo entrega o código de saída ao chamador se ele for executado pelo Systems Manager Agent. O Systems Manager Agent controla a reinicialização do sistema e executa a mesma etapa que iniciou a reinicialização, conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.
-
Salva o
executionstate
atual, configura um gatilho de reinicialização para executar novamente o aplicativo e reinicializa o sistema.
Após a reinicialização do sistema, o aplicativo executa a mesma etapa que iniciou a reinicialização. Se você precisar dessa funcionalidade, deverá escrever scripts idempotentes que possam lidar com várias invocações do mesmo comando shell.
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
commands |
Contém uma lista de instruções ou comandos a serem executados de acordo com a PowerShell sintaxe. Várias linhas YAML são permitidas. | Lista de strings | Sim. Deve especificar |
file |
Contém o caminho para um arquivo de PowerShell script. PowerShell será executado nesse arquivo usando o argumento da linha de -file comando. O caminho deve apontar para um arquivo do .ps1 . |
String | Sim. Deve especificar |
Exemplo de entrada: antes e depois de uma reinicialização
name: ExitCode3010Example description: This shows how the exit code can be used to restart a system with ExecutePowerShell schemaVersion: 1.0 phases: - name: build steps: - name: RestartTrigger action: ExecutePowerShell inputs: commands: - | $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator' if (Test-Path -Path $rebootIndicator) { Write-Host 'The reboot file exists. Deleting it and exiting with success.' Remove-Item -Path $rebootIndicator -Force | Out-Null [System.Environment]::Exit(0) } Write-Host 'The reboot file does not exist. Creating it and triggering a restart.' New-Item -Path $rebootIndicator -ItemType File | Out-Null [System.Environment]::Exit(3010)
Campo | Descrição | Tipo |
---|---|---|
stdout |
Saída padrão da execução do comando. | string |
Se você executar uma reinicialização e retornar o código de saída 3010
como parte do módulo de ação, a compilação será retomada na mesma etapa do módulo de ação que iniciou a reinicialização. Se você executar uma reinicialização sem o código de saída, o processo de compilação poderá falhar.
Exemplo de saída: antes da reinicialização (primeira vez no documento)
{ “stdout”: “The reboot file does not exist. Creating it and triggering a restart." }
Exemplo de saída: após a reinicialização, (segunda vez no documento)
{ “stdout”: “The reboot file exists. Deleting it and exiting with success." }
Módulos de download e upload de arquivos
A seção a seguir contém detalhes dos módulos de ação que carregam ou baixam arquivos.
Baixe e faça upload de módulos de ação
S3Download
Com o módulo de ação S3Download
, você pode baixar um objeto do Amazon S3, ou um conjunto de objetos, para um arquivo ou pasta local que você especifica com o caminho destination
. Se algum arquivo já existir no local especificado e o sinalizador do overwrite
estiver definido como verdadeiro, o S3Download
substituirá o arquivo.
Sua localização source
pode apontar para um objeto específico no Amazon S3, ou você pode usar um prefixo de chave com um caractere curinga de asterisco (*
) para baixar um conjunto de objetos que correspondam ao caminho do prefixo da chave. Quando você especifica um prefixo de chave na sua localização source
, o módulo de ação S3Download
baixa tudo o que corresponde ao prefixo (arquivos e pastas incluídos). Certifique-se de que o prefixo da chave termine com uma barra, seguida por um asterisco (/*
), para que você baixe tudo que corresponda ao prefixo. Por exemplo:
.s3://my-bucket/my-folder/*
nota
Todas as pastas no caminho de destino devem existir antes do download, ou o download falhará.
Se a ação S3Download
de um prefixo de chave especificado falhar durante um download, o conteúdo da pasta não voltará ao estado anterior à falha. A pasta de destino permanece como estava no momento da falha.
Casos de uso compatíveis
O módulo de ação S3Download
é compatível com os seguintes casos de uso:
-
O objeto Amazon S3 é baixado para uma pasta local, conforme especificado no caminho de download.
-
Os objetos do Amazon S3 (com um prefixo de chave no caminho do arquivo do Amazon S3) são baixados para a pasta local especificada, que copia recursivamente todos os objetos do Amazon S3 que correspondem ao prefixo da chave na pasta local.
IAMrequisitos
A IAM função que você associa ao seu perfil de instância precisa ter permissões para executar o módulo de S3Download
ação. As IAM políticas a seguir devem ser anexadas à IAM função associada ao perfil da instância:
-
Arquivo único:
s3:GetObject
no bucket/objeto (por exemplo,).arn:aws:s3:::
BucketName
/* -
Vários arquivos:
s3:ListBucket
no bucket/objeto (por exemplo,arn:aws:s3:::
) eBucketName
s3:GetObject
no bucket/objeto (por exemplo,arn:aws:s3:::
).BucketName
/*
Chave |
Descrição |
Tipo |
Obrigatório |
Padrão |
---|---|---|---|---|
|
O bucket do Amazon S3 que é a fonte para seu download. Você pode especificar um caminho para um objeto específico ou usar um prefixo de chave que termine com uma barra, seguida por um caractere curinga de asterisco ( |
String |
Sim |
N/D |
|
O caminho local em que os objetos do Amazon S3 são baixados. Para baixar um único arquivo, especifique o nome do arquivo como parte do caminho. Por exemplo, |
String |
Sim |
N/D |
|
ID da conta do proprietário esperada do bucket fornecido no caminho |
String |
Não |
N/D |
|
Quando definido como verdadeiro, se um arquivo com o mesmo nome já existir na pasta de destino no caminho local especificado, o arquivo de download substituirá o arquivo local. Quando definido como false, o arquivo existente no sistema local é protegido contra a substituição e o módulo de ação falha com um erro de download. Por exemplo, |
Booleano |
Não |
verdadeiro |
nota
Nos exemplos a seguir, o caminho da pasta do Windows pode ser substituído por um caminho do Linux. Por exemplo,
pode ser substituído por C:\myfolder\package.zip
./myfolder/package.zip
Exemplo de entrada: copiar um objeto do Amazon S3 para um arquivo local
O exemplo a seguir mostra como copiar um objeto do Amazon S3 para um arquivo local.
- name: DownloadMyFile action: S3Download inputs: - source: s3://
amzn-s3-demo-source-bucket/path/to/package.zip
destination:C:\myfolder\package.zip
expectedBucketOwner:123456789022
overwrite:false
- source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
destination:C:\myfolder\package.zip
expectedBucketOwner:123456789022
overwrite:true
- source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
destination:C:\myfolder\package.zip
expectedBucketOwner:123456789022
Exemplo de entrada: copie todos os objetos do Amazon S3 para um bucket do Amazon S3 com prefixo de chave em uma pasta local
O exemplo a seguir mostra como copiar todos os objetos do Amazon S3 para um bucket do Amazon S3 para uma pasta local. O Amazon S3 não tem o conceito de pasta, portanto, todos os objetos que correspondem ao prefixo da chave são copiados. O número máximo de objetos que podem ser baixados é 1000.
- name: MyS3DownloadKeyprefix action: S3Download maxAttempts: 3 inputs: - source: s3://
amzn-s3-demo-source-bucket/path/to/*
destination: C:\myfolder
\ expectedBucketOwner:123456789022
overwrite:false
- source: s3://amzn-s3-demo-source-bucket/path/to/*
destination:C:\myfolder
\ expectedBucketOwner:123456789022
overwrite:true
- source: s3://amzn-s3-demo-source-bucket/path/to/*
destination:C:\myfolder
\ expectedBucketOwner:123456789022
Saída
Nenhum.
S3Upload
Com o módulo de ação S3Upload, você pode carregar um arquivo de um arquivo ou pasta de origem para um local do Amazon S3. Você pode usar um curinga (*
) no caminho especificado para o local de origem para carregar todos os arquivos cujo caminho corresponda ao padrão curinga.
Se a ação recursiva do S3Upload falhar, todos os arquivos que já foram carregados permanecerão no bucket Amazon S3 de destino.
Casos de uso compatíveis
-
Arquivo local para o objeto Amazon S3.
-
Arquivos locais na pasta (com curinga) para o prefixo de chave do Amazon S3.
-
Copie a pasta local (
recurse
deve ter sido definido comotrue
) para o prefixo de chave do Amazon S3.
IAMrequisitos
A IAM função que você associa ao seu perfil de instância precisa ter permissões para executar o módulo de S3Upload
ação. A IAM política a seguir deve ser anexada à IAM função associada ao perfil da instância. A política deve conceder permissões de s3:PutObject
ao bucket de destino do Amazon S3. Por exemplo, arn:aws:s3:::
.BucketName
/*
Chave |
Descrição |
Tipo |
Obrigatório |
Padrão |
---|---|---|---|---|
|
O caminho local onde os arquivos/pastas fonte se originam. O |
String |
Sim |
N/D |
|
O caminho para o bucket de destino do Amazon S3 onde os arquivos/pastas de origem são carregados. |
String |
Sim |
N/D |
|
Quando definido como |
String |
Não |
|
|
O ID esperado da conta do proprietário para o bucket do Amazon S3 especificado no caminho de destino. Recomendamos que você verifique a propriedade do bucket Amazon S3 especificado no destino. |
String |
Não |
N/D |
Exemplo de entrada: copiar um arquivo local para um objeto do Amazon S3
O exemplo a seguir mostra como copiar um arquivo local para um objeto do Amazon S3.
- name: MyS3UploadFile action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\
myfolder\package.zip
destination: s3://amzn-s3-demo-destination-bucket/path/to/package.zip
expectedBucketOwner:123456789022
Exemplo de entrada: copie todos os arquivos em uma pasta local para um bucket do Amazon S3 com prefixo de chave
O exemplo a seguir mostra como copiar todos os arquivos na pasta local para um bucket do Amazon S3 com prefixo de chave. Este exemplo não copia subpastas ou seu conteúdo porque o recurse
não está especificado e o padrão é false
.
- name: MyS3UploadMultipleFiles action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\
myfolder\*
destination: s3://amzn-s3-demo-destination-bucket/path/to/
expectedBucketOwner:123456789022
Exemplo de entrada: copiar recursivamente todos os arquivos e pastas de uma pasta local para um bucket do Amazon S3
O exemplo a seguir mostra como copiar recursivamente todos os arquivos e pastas de uma pasta local para um bucket do Amazon S3 com o prefixo de chaves.
- name: MyS3UploadFolder action: S3Upload onFailure: Abort maxAttempts: 3 inputs: - source: C:\
myfolder\*
destination: s3://amzn-s3-demo-destination-bucket/path/to/
recurse:true
expectedBucketOwner:123456789022
Saída
Nenhum.
WebDownload
O módulo de WebDownloadação permite que você baixe arquivos e recursos de um local remoto pelo HTTPS protocoloHTTP/(HTTPSé recomendado). Não há limites para o número ou o tamanho dos downloads. Este módulo lida com a lógica de repetição e recuo exponencial.
Cada operação de download recebe no máximo 5 tentativas de sucesso, de acordo com as entradas do usuário. Essas tentativas diferem das especificadas no campo maxAttempts
do documento steps
, que estão relacionadas às falhas do módulo de ação.
Esse módulo de ação manipula implicitamente os redirecionamentos. Todos os códigos de HTTP status, exceto o200
, resultam em um erro.
Nome da chave | Descrição | Tipo | Obrigatório | Padrão |
---|---|---|---|---|
source |
OHTTP/válido HTTPS URL (HTTPSé recomendado), que segue o padrão RFC 3986. Expressões de encadeamento são permitidas. | String |
Sim |
N/D |
destination |
Um caminho absoluto ou relativo de arquivo ou pasta no sistema local. Os caminhos das pastas devem terminar com / . Se não terminarem com / , serão tratados como caminhos de arquivo. O módulo cria qualquer arquivo ou pasta necessário para downloads bem-sucedidos. Expressões de encadeamento são permitidas. |
String | Sim | N/D |
overwrite |
Quando ativado, substitui todos os arquivos existentes no sistema local pelo arquivo ou recurso baixado. Quando não ativado, os arquivos existentes no sistema local não são sobrescritos e o módulo de ação falha com um erro. Quando a substituição está ativada e a soma de verificação e o algoritmo são especificados, o módulo de ação baixa o arquivo somente se a soma de verificação e o hash de qualquer arquivo preexistente não corresponderem. | Booleano | Não | true |
checksum |
Quando você especifica a soma de verificação, ela é comparada com o hash do arquivo baixado que é gerado com o algoritmo fornecido. Para que a verificação do arquivo seja ativada, a soma de verificação e o algoritmo devem ser fornecidos. Expressões de encadeamento são permitidas. | String | Não | N/D |
algorithm |
O algoritmo usado para calcular a soma de verificação. As opções são MD5 SHA1SHA256,, SHA512 e. Para que a verificação do arquivo seja ativada, a soma de verificação e o algoritmo devem ser fornecidos. Expressões de encadeamento são permitidas. | String | Não | N/D |
ignoreCertificateErrors |
SSLa validação do certificado é ignorada quando ativada. | Booleano | Não | false |
Nome da chave | Descrição | Tipo |
---|---|---|
destination |
String delimitada por caracteres de nova linha que especifica o caminho de destino em que os arquivos ou recursos baixados são armazenados. | String |
Exemplo de entrada: baixar arquivo remoto no destino local
- name: DownloadRemoteFile action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: C:\testfolder\package.zip
Saída:
{ "destination": "C:\\testfolder\\package.zip" }
Exemplo de entrada: baixe mais de um arquivo remoto em mais de um destino local
- name: DownloadRemoteFiles action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: /tmp/java14_renamed.zip - source: https://testdomain/path/to/java14.zip destination: /tmp/create_new_folder_and_add_java14_as_zip/
Saída:
{ "destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip" }
Exemplo de entrada: baixe um arquivo remoto sem sobrescrever o destino local e baixe outro arquivo remoto com verificação de arquivo
- name: DownloadRemoteMultipleProperties action: WebDownload maxAttempts: 3 inputs: - source: https://testdomain/path/to/java14.zip destination: C:\create_new_folder\java14_renamed.zip overwrite: false - source: https://testdomain/path/to/java14.zip destination: C:\create_new_folder_and_add_java14_as_zip\ checksum: ac68bbf921d953d1cfab916cb6120864 algorithm: MD5 overwrite: true
Saída:
{ "destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip" }
Exemplo de entrada: baixe o arquivo remoto e ignore a validação SSL da certificação
- name: DownloadRemoteIgnoreValidation action: WebDownload maxAttempts: 3 inputs: - source: https://www.bad-ssl.com/resource destination: /tmp/downloads/ ignoreCertificateErrors: true
Saída:
{ "destination": "/tmp/downloads/resource" }
Módulos de operações do sistema de arquivos
A seção a seguir contém detalhes dos módulos de ação que realizam operações do sistema de arquivos.
Módulos de ação de operação do sistema de arquivos
AppendFile
O módulo de AppendFileação adiciona conteúdo especificado ao conteúdo preexistente de um arquivo.
Se o valor da codificação do arquivo for diferente do valor padrão de codificação (utf-8
), você poderá especificar o valor da codificação do arquivo usando a opção encoding
. Por padrão, presume-se que utf-16
e utf-32
usam a codificação little-endian.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
O arquivo especificado não existe no runtime.
-
Você não tem permissões de gravação para modificar o conteúdo do arquivo.
-
O módulo encontra um erro durante a operação do arquivo.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Sim |
content |
O conteúdo a ser anexado ao arquivo. | String | Não | String vazia | N/D | Sim |
encoding |
O padrão de codificação. | String | Não | utf8 |
utf8 , utf-8 , utf16 ,utf-16 , utf16-LE , utf-16-LE utf16-BE , utf-16-BE , utf32 , utf-32 , utf32-LE ,utf-32-LE , utf32-BE e utf-32-BE . O valor da opção de codificação não diferencia maiúsculas de minúsculas. |
Sim |
Exemplo de entrada: anexar arquivo sem codificação (Linux)
- name: AppendingFileWithOutEncodingLinux action: AppendFile inputs: - path: ./Sample.txt content: "The string to be appended to the file"
Exemplo de entrada: anexar arquivo sem codificação (Windows)
- name: AppendingFileWithOutEncodingWindows action: AppendFile inputs: - path: C:\MyFolder\MyFile.txt content: "The string to be appended to the file"
Exemplo de entrada: anexar arquivo com codificação (Linux)
- name: AppendingFileWithEncodingLinux action: AppendFile inputs: - path: /FolderName/SampleFile.txt content: "The string to be appended to the file" encoding: UTF-32
Exemplo de entrada: anexar arquivo com codificação (Windows)
- name: AppendingFileWithEncodingWindows action: AppendFile inputs: - path: C:\MyFolderName\SampleFile.txt content: "The string to be appended to the file" encoding: UTF-32
Exemplo de entrada: anexar arquivo com string vazio (Linux)
- name: AppendingEmptyStringLinux action: AppendFile inputs: - path: /FolderName/SampleFile.txt
Exemplo de entrada: anexar arquivo com string vazio (Windows)
- name: AppendingEmptyStringWindows action: AppendFile inputs: - path: C:\MyFolderName\SampleFile.txt
Saída
Nenhum.
CopyFile
O módulo de CopyFileação copia arquivos da fonte especificada para o destino especificado. Por padrão, o módulo cria recursivamente a pasta de destino se ela não existir no runtime.
Se um arquivo com o nome especificado já existir na pasta especificada, o módulo de ação, por padrão, substituirá o arquivo existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false
. Quando a opção de substituição estiver definida como false
, e um arquivo já estiver no local especificado com o nome especificado, o módulo de ação retornará um erro. Essa opção funciona da mesma forma que o comando cp
no Linux, que substitui por padrão.
O nome do arquivo de origem pode incluir um curinga (*
). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/
ou \
). Se caracteres curinga forem incluídos no nome do arquivo de origem, todos os arquivos que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser mover mais de um arquivo usando um caractere curinga, a entrada para a opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
), que indica que a entrada de destino é uma pasta.
Se o nome do arquivo de destino for diferente do nome do arquivo de origem, você poderá especificar o nome do arquivo de destino usando a opção destination
. Se você não especificar um nome de arquivo de destino, o nome do arquivo de origem será usado para criar o arquivo de destino. Qualquer texto que siga o último separador de caminho de arquivo (/
ou \
) será tratado como o nome do arquivo. Se você quiser usar o mesmo nome de arquivo do arquivo de origem, a entrada da opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
).
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para criar um arquivo na pasta especificada.
-
Os arquivos de origem não existem no runtime.
-
Já existe uma pasta com o nome de arquivo especificado e a
overwrite
opção está definida comofalse
. -
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
source |
O caminho do arquivo de origem. | String | Sim | N/D | N/D | Sim |
destination |
O caminho do arquivo de destino. | String | Sim | N/D | N/D | Sim |
overwrite |
Quando definido como false, os arquivos de destino não serão substituídos quando já houver um arquivo no local especificado com o nome especificado. | Booleano | Não | true |
N/D | Sim |
Exemplo de entrada: copiar um arquivo (Linux)
- name: CopyingAFileLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt
Exemplo de entrada: copiar um arquivo (Windows)
- name: CopyingAFileWindows action: CopyFile inputs: - source: C:\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt
Exemplo de entrada: copiar um arquivo usando o nome do arquivo de origem (Linux)
- name: CopyingFileWithSourceFileNameLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/
Exemplo de entrada: copiar um arquivo usando o nome do arquivo de origem (Windows)
- name: CopyingFileWithSourceFileNameWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\
Exemplo de entrada: copiar um arquivo usando o caractere curinga (Linux)
- name: CopyingFilesWithWildCardLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/
Exemplo de entrada: copiar um arquivo usando o caractere curinga (Windows)
- name: CopyingFilesWithWildCardWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\
Exemplo de entrada: copiar um arquivo sem substituir (Linux)
- name: CopyingFilesWithoutOverwriteLinux action: CopyFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt overwrite: false
Exemplo de entrada: copiar um arquivo sem substituir (Windows)
- name: CopyingFilesWithoutOverwriteWindows action: CopyFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt overwrite: false
Saída
Nenhum.
CopyFolder
O módulo de CopyFolderação copia uma pasta da origem especificada para o destino especificado. A entrada para a opção source
é a pasta a ser copiada, e a entrada para a opção destination
é a pasta em que o conteúdo da pasta de origem é copiado. Por padrão, o módulo cria recursivamente a pasta de destino se ela não existir no runtime.
Se uma pasta com o nome especificado já existir na pasta especificada, o módulo de ação, por padrão, substituirá a pasta existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false
. Quando a opção de substituição estiver definida como false
e já houver uma pasta no local especificado com o nome especificado, o módulo de ação retornará um erro.
O nome da pasta de origem pode incluir um curinga (*
). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/
ou \
). Se caracteres curinga forem incluídos no nome da pasta de origem, todas as pastas que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser copiar mais de uma pasta usando um caractere curinga, a entrada para a opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
), que indica que a entrada de destino é uma pasta.
Se o nome da pasta de destino for diferente do nome da pasta de origem, você poderá especificar o nome do arquivo da pasta usando a opção destination
. Se você não especificar um nome da pasta de destino, o nome da pasta de origem será usado para criar a pasta de destino. Qualquer texto que siga o último separador de caminho de arquivo (/
ou \
) será tratado como o nome da pasta. Se você quiser usar o mesmo nome de pasta da pasta de origem, a entrada da opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
).
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para criar uma pasta na pasta especificada.
-
As pastas de origem não existem no runtime.
-
Já existe uma pasta com o nome de pasta especificado e a
overwrite
opção está definida comofalse
. -
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
source |
O caminho da pasta de origem. | String | Sim | N/D | N/D | Sim |
destination |
O caminho da pasta de destino. | String | Sim | N/D | N/D | Sim |
overwrite |
Quando definido como false, as pastas de destino não serão substituídas quando já houver uma pasta no local especificado com o nome especificado. | Booleano | Não | true |
N/D | Sim |
Exemplo de entrada: copiar uma pasta (Linux)
- name: CopyingAFolderLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/destinationFolder
Exemplo de entrada: copiar uma pasta (Windows)
- name: CopyingAFolderWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\destinationFolder
Exemplo de entrada: copiar uma pasta usando o nome da pasta de origem (Linux)
- name: CopyingFolderSourceFolderNameLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/
Exemplo de entrada: copiar uma pasta usando o nome da pasta de origem (Windows)
- name: CopyingFolderSourceFolderNameWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\
Exemplo de entrada: copiar uma pasta usando o caractere curinga (Linux)
- name: CopyingFoldersWithWildCardLinux action: CopyFolder inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/
Exemplo de entrada: copiar uma pasta usando o caractere curinga (Windows)
- name: CopyingFoldersWithWildCardWindows action: CopyFolder inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\
Exemplo de entrada: copiar uma pasta sem substituir (Linux)
- name: CopyingFoldersWithoutOverwriteLinux action: CopyFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/destinationFolder overwrite: false
Exemplo de entrada: copiar uma pasta sem substituir (Windows)
- name: CopyingFoldersWithoutOverwrite action: CopyFolder inputs: - source: C:\Sample\MyFolder\SourceFolder destination: C:\MyFolder\destinationFolder overwrite: false
Saída
Nenhum.
CreateFile
O módulo de CreateFileação cria um arquivo em um local especificado. Por padrão, se necessário, o módulo também cria as pastas principais recursivamente.
Se um arquivo já existir na pasta especificada, o módulo de ação, por padrão, truncará ou substituirá o arquivo existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false
. Quando a opção de substituição estiver definida como false
, e um arquivo já estiver no local especificado com o nome especificado, o módulo de ação retornará um erro.
Se o valor da codificação do arquivo for diferente do valor padrão de codificação (utf-8
), você poderá especificar o valor da codificação do arquivo usando a opção encoding
. Por padrão, presume-se que utf-16
e utf-32
usam a codificação little-endian.
owner
,group
e permissions
são entradas opcionais. A entrada para permissions
deve ser um valor de string. Os arquivos são criados com valores padrão quando não são fornecidos. Essas opções não são suportadas nas plataformas Windows. Esse módulo de ação valida e retorna um erro se as opções owner
, group
e permissions
forem usadas em plataformas Windows.
Esse módulo de ação pode criar um arquivo com permissões definidas pelo valor padrão umask
do sistema operacional. Você deve definir o valor umask
se quiser substituir o valor padrão.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para criar um arquivo ou uma pasta na pasta parent especificada.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Sim |
content |
O conteúdo do texto do arquivo. | String | Não | N/D | N/D | Sim |
encoding |
O padrão de codificação. | String | Não | utf8 |
utf8 , utf-8 , utf16 ,utf-16 , utf16-LE , utf-16-LE utf16-BE , utf-16-BE , utf32 , utf-32 , utf32-LE ,utf-32-LE , utf32-BE e utf-32-BE . O valor da opção de codificação não diferencia maiúsculas de minúsculas. |
Sim |
owner |
O nome do usuário ou ID. | String | Não | N/D | N/D | Não compatível com Windows. |
group |
O nome ou ID do grupo. | String | Não | O usuário atual. | N/D | Não compatível com Windows. |
permissions |
As permissões de arquivo. | String | Não | 0666 |
N/D | Não compatível com Windows. |
overwrite |
Se o nome do arquivo especificado já existir, definir esse valor como false evita que o arquivo seja truncado ou substituído por padrão. |
Booleano | Não | true |
N/D | Sim |
Exemplo de entrada: criar um arquivo sem substituir (Linux)
- name: CreatingFileWithoutOverwriteLinux action: CreateFile inputs: - path: /home/UserName/Sample.txt content: The text content of the sample file. overwrite: false
Exemplo de entrada: criar um arquivo sem substituir (Windows)
- name: CreatingFileWithoutOverwriteWindows action: CreateFile inputs: - path: C:\Temp\Sample.txt content: The text content of the sample file. overwrite: false
Exemplo de entrada: criar um arquivo com propriedades do arquivo
- name: CreatingFileWithFileProperties action: CreateFile inputs: - path: SampleFolder/Sample.txt content: The text content of the sample file. encoding: UTF-16 owner: Ubuntu group: UbuntuGroup permissions: 0777 - path: SampleFolder/SampleFile.txt permissions: 755 - path: SampleFolder/TextFile.txt encoding: UTF-16 owner: root group: rootUserGroup
Exemplo de entrada: criar um arquivo sem propriedades do arquivo
- name: CreatingFileWithoutFileProperties action: CreateFile inputs: - path: ./Sample.txt - path: Sample1.txt
Exemplo de entrada: criar um arquivo vazio para ignorar uma seção no script de limpeza do Linux
- name: CreateSkipCleanupfile action: CreateFile inputs: - path:
<skip section file name>
Para ter mais informações, consulte Substitua o script de limpeza do Linux
Saída
Nenhum.
CreateFolder
O módulo de CreateFolderação cria uma pasta em um local especificado. Por padrão, se necessário, o módulo também cria as pastas principais recursivamente.
Se a pasta já existir na pasta especificada, o módulo de ação, por padrão, truncará ou substituirá a pasta existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false
. Quando a opção de substituição estiver definida como false
e já houver uma pasta no local especificado com o nome especificado, o módulo de ação retornará um erro.
owner
,group
e permissions
são entradas opcionais. A entrada para permissions
deve ser um valor de string. Essas opções não são suportadas nas plataformas Windows. Esse módulo de ação valida e retorna um erro se as opções owner
, group
e permissions
forem usadas em plataformas Windows.
Esse módulo de ação pode criar uma pasta com permissões definidas pelo valor padrão umask
do sistema operacional. Você deve definir o valor umask
se quiser substituir o valor padrão.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem permissão para criar uma pasta no local especificado.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho da pasta. | String | Sim | N/D | N/D | Sim |
owner |
O nome do usuário ou ID. | String | Não | O usuário atual. | N/D | Não compatível com Windows. |
group |
O nome ou ID do grupo. | String | Não | O grupo do usuário atual. | N/D | Não compatível com Windows. |
permissions |
As permissões da pasta. | String | Não | 0777 |
N/D | Não compatível com Windows. |
overwrite |
Se o nome do arquivo especificado já existir, definir esse valor como false evita que o arquivo seja truncado ou substituído por padrão. |
Booleano | Não | true |
N/D | Sim |
Exemplo de entrada: criar uma pasta (Linux)
- name: CreatingFolderLinux action: CreateFolder inputs: - path: /Sample/MyFolder/
Exemplo de entrada: criar uma pasta (Windows)
- name: CreatingFolderWindows action: CreateFolder inputs: - path: C:\MyFolder
Exemplo de entrada: criar uma pasta especificando as propriedades da pasta
- name: CreatingFolderWithFolderProperties action: CreateFolder inputs: - path: /Sample/MyFolder/Sample/ owner: SampleOwnerName group: SampleGroupName permissions: 0777 - path: /Sample/MyFolder/SampleFoler/ permissions: 777
Exemplo de entrada: criar uma pasta que substitua a pasta existente, se houver uma.
- name: CreatingFolderWithOverwrite action: CreateFolder inputs: - path: /Sample/MyFolder/Sample/ overwrite: true
Saída
Nenhum.
CreateSymlink
O módulo de CreateSymlinkação cria links simbólicos ou arquivos que contêm uma referência a outro arquivo. Este módulo não é compatível com plataformas Windows.
A entrada para as opções path
e target
pode ser um caminho absoluto ou relativo. Se a entrada da opção path
for um caminho relativo, ela será substituída pelo caminho absoluto quando o link for criado.
Por padrão, quando um link com o nome especificado já existe na pasta especificada, o módulo de ação retorna um erro. Você pode substituir esse comportamento padrão configurando a opção force
como true
. Quando a opção force
estiver definida como true
, o módulo substituirá o link existente.
Se uma pasta principal não existir, o módulo de ação cria a pasta recursivamente, por padrão.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
O arquivo de destino não existe no runtime.
-
Já existe um arquivo de link não simbólico com o nome especificado.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Não compatível com Windows. |
target |
O caminho do arquivo de destino para o qual o link simbólico aponta. | String | Sim | N/D | N/D | Não compatível com Windows. |
force |
Força a criação de um link quando já existe um link com o mesmo nome. | Booleano | Não | false |
N/D | Não compatível com Windows. |
Exemplo de entrada: criar um link simbólico que força a criação de um link
- name: CreatingSymbolicLinkWithForce action: CreateSymlink inputs: - path: /Folder2/Symboliclink.txt target: /Folder/Sample.txt force: true
Exemplo de entrada: criar um link simbólico que não força a criação de um link
- name: CreatingSymbolicLinkWithOutForce action: CreateSymlink inputs: - path: Symboliclink.txt target: /Folder/Sample.txt
Saída
Nenhum.
DeleteFile
O módulo de DeleteFileação exclui um arquivo ou arquivos em um local especificado.
A entrada de path
deve ser um caminho de arquivo válido ou um caminho de arquivo com um caractere curinga (*
) no nome do arquivo. Quando caracteres curinga são especificados no nome do arquivo, todos os arquivos na mesma pasta que correspondam ao curinga são excluídos.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a operação solicitada.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Sim |
Exemplo de entrada: excluir um único arquivo (Linux)
- name: DeletingSingleFileLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/Sample.txt
Exemplo de entrada: excluir um único arquivo (Windows)
- name: DeletingSingleFileWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\Sample.txt
Exemplo de entrada: excluir um arquivo que termina com “log” (Linux)
- name: DeletingFileEndingWithLogLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/*log
Exemplo de entrada: excluir um arquivo que termina com “log” (Windows)
- name: DeletingFileEndingWithLogWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\*log
Exemplo de entrada: excluir todos os arquivos em uma pasta especificada (Linux)
- name: DeletingAllFilesInAFolderLinux action: DeleteFile inputs: - path: /SampleFolder/MyFolder/*
Exemplo de entrada: excluir todos os arquivos em uma pasta especificada (Windows)
- name: DeletingAllFilesInAFolderWindows action: DeleteFile inputs: - path: C:\SampleFolder\MyFolder\*
Saída
Nenhum.
DeleteFolder
O módulo de DeleteFolderação exclui pastas.
Se a pasta não estiver vazia, você deverá definir a force
opção true
para remover a pasta e seu conteúdo. Se você não definir a opção force
como true
e a pasta que você está tentando excluir não estiver vazia, o módulo de ação retornará um erro. O valor padrão da opção force
é false
.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a operação solicitada.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho da pasta. | String | Sim | N/D | N/D | Sim |
force |
Remove a pasta, esteja ela vazia ou não. | Booleano | Não | false |
N/D | Sim |
Exemplo de entrada: excluir uma pasta que não esteja vazia usando a force
opção (Linux)
- name: DeletingFolderWithForceOptionLinux action: DeleteFolder inputs: - path: /Sample/MyFolder/Sample/ force: true
Exemplo de entrada: excluir uma pasta que não esteja vazia usando a force
opção (Windows)
- name: DeletingFolderWithForceOptionWindows action: DeleteFolder inputs: - path: C:\Sample\MyFolder\Sample\ force: true
Exemplo de entrada: excluir uma pasta (Linux)
- name: DeletingFolderWithOutForceLinux action: DeleteFolder inputs: - path: /Sample/MyFolder/Sample/
Exemplo de entrada: excluir uma pasta (Windows)
- name: DeletingFolderWithOutForce action: DeleteFolder inputs: - path: C:\Sample\MyFolder\Sample\
Saída
Nenhum.
ListFiles
O módulo de ListFilesação lista os arquivos em uma pasta especificada. Quando a opção recursiva está definida como true
, ela lista os arquivos nas subpastas. Por padrão, este módulo não lista arquivos em subpastas.
Para listar todos os arquivos com nomes que correspondam a um padrão especificado, use a opção fileNamePattern
para fornecer o padrão. A opção fileNamePattern
aceita o valor curinga (*
). Quando o fileNamePattern
é fornecido, todos os arquivos que correspondem ao formato de nome de arquivo especificado são retornados.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
A pasta especificada não existe no runtime.
-
Você não tem a permissão para criar um arquivo ou uma pasta na pasta parent especificada.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho da pasta. | String | Sim | N/D | N/D | Sim |
fileNamePattern |
O padrão a ser correspondido ao listar todos os arquivos com nomes que correspondam ao padrão. | String | Não | N/D | N/D | Sim |
recursive |
Lista os arquivos na pasta recursivamente. | Booleano | Não | false |
N/D | Sim |
Exemplo de entrada: listar todos os arquivos em uma pasta especificada (Linux)
- name: ListingFilesInSampleFolderLinux action: ListFiles inputs: - path: /Sample/MyFolder/Sample
Exemplo de entrada: listar todos os arquivos em uma pasta especificada (Windows)
- name: ListingFilesInSampleFolderWindows action: ListFiles inputs: - path: C:\Sample\MyFolder\Sample
Exemplo de entrada: listar arquivos que terminam com “log” (Linux)
- name: ListingFilesWithEndingWithLogLinux action: ListFiles inputs: - path: /Sample/MyFolder/ fileNamePattern: *log
Exemplo de entrada: listar arquivos que terminam com “log” (Windows)
- name: ListingFilesWithEndingWithLogWindows action: ListFiles inputs: - path: C:\Sample\MyFolder\ fileNamePattern: *log
Exemplo de entrada: listar arquivos recursivamente
- name: ListingFilesRecursively action: ListFiles inputs: - path: /Sample/MyFolder/ recursive: true
Nome da chave | Descrição | Tipo |
---|---|---|
files |
A lista de arquivos. | String |
Exemplo de saída
{ "files": "/sample1.txt,/sample2.txt,/sample3.txt" }
MoveFile
O módulo de MoveFileação move arquivos da fonte especificada para o destino especificado.
Se um arquivo já existir na pasta especificada, o módulo de ação, por padrão, substituirá o arquivo existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false
. Quando a opção de substituição estiver definida como false
, e um arquivo já estiver no local especificado com o nome especificado, o módulo de ação retornará um erro. Essa opção funciona da mesma forma que o comando mv
no Linux, que substitui por padrão.
O nome do arquivo de origem pode incluir um curinga (*
). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/
ou \
). Se caracteres curinga forem incluídos no nome do arquivo de origem, todos os arquivos que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser mover mais de um arquivo usando um caractere curinga, a entrada para a opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
), que indica que a entrada de destino é uma pasta.
Se o nome do arquivo de destino for diferente do nome do arquivo de origem, você poderá especificar o nome do arquivo de destino usando a opção destination
. Se você não especificar um nome de arquivo de destino, o nome do arquivo de origem será usado para criar o arquivo de destino. Qualquer texto que siga o último separador de caminho de arquivo (/
ou \
) será tratado como o nome do arquivo. Se você quiser usar o mesmo nome de arquivo do arquivo de origem, a entrada da opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
).
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para criar um arquivo na pasta especificada.
-
Os arquivos de origem não existem no runtime.
-
Já existe uma pasta com o nome de arquivo especificado e a
overwrite
opção está definida comofalse
. -
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
source |
O caminho do arquivo de origem. | String | Sim | N/D | N/D | Sim |
destination |
O caminho do arquivo de destino. | String | Sim | N/D | N/D | Sim |
overwrite |
Quando definido como false, os arquivos de destino não serão substituídos quando já houver um arquivo no local especificado com o nome especificado. | Booleano | Não | true |
N/D | Sim |
Exemplo de entrada: mover um arquivo (Linux)
- name: MovingAFileLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt
Exemplo de entrada: mover um arquivo (Windows)
- name: MovingAFileWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt
Exemplo de entrada: mover um arquivo usando o nome do arquivo de origem (Linux)
- name: MovingFileWithSourceFileNameLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/
Exemplo de entrada: mover um arquivo usando o nome do arquivo de origem (Windows)
- name: MovingFileWithSourceFileNameWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder
Exemplo de entrada: mover um arquivo usando o caractere curinga (Linux)
- name: MovingFilesWithWildCardLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/
Exemplo de entrada: mover um arquivo usando o caractere curinga (Windows)
- name: MovingFilesWithWildCardWindows action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder
Exemplo de entrada: mover um arquivo sem substituir (Linux)
- name: MovingFilesWithoutOverwriteLinux action: MoveFile inputs: - source: /Sample/MyFolder/Sample.txt destination: /MyFolder/destinationFile.txt overwrite: false
Exemplo de entrada: mover um arquivo sem substituir (Windows)
- name: MovingFilesWithoutOverwrite action: MoveFile inputs: - source: C:\Sample\MyFolder\Sample.txt destination: C:\MyFolder\destinationFile.txt overwrite: false
Saída
Nenhum.
MoveFolder
O módulo de MoveFolderação move as pastas da origem especificada para o destino especificado. A entrada para a opção source
é a pasta a ser movida, e a entrada para a opção destination
é a pasta para a qual o conteúdo das pastas de origem é movido.
Se a pasta parent de destino ou a entrada para a opção destination
não existirem no runtime, o comportamento padrão do módulo é criar a pasta no destino especificado recursivamente.
Se uma pasta igual à pasta de origem já existir na pasta de destino, o módulo de ação, por padrão, substituirá a pasta existente. Você pode substituir esse comportamento padrão configurando a opção de substituição como false
. Quando a opção de substituição estiver definida como false
e já houver uma pasta no local especificado com o nome especificado, o módulo de ação retornará um erro.
O nome da pasta de origem pode incluir um curinga (*
). Caracteres curinga são aceitos somente após o último separador de caminho de arquivo (/
ou \
). Se caracteres curinga forem incluídos no nome da pasta de origem, todas as pastas que corresponderem ao curinga serão copiados para a pasta de destino. Se você quiser mover mais de uma pasta usando um caractere curinga, a entrada para a opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
), que indica que a entrada de destino é uma pasta.
Se o nome da pasta de destino for diferente do nome da pasta de origem, você poderá especificar o nome do arquivo da pasta usando a opção destination
. Se você não especificar um nome da pasta de destino, o nome da pasta de origem será usado para criar a pasta de destino. Qualquer texto que siga o último separador de caminho de arquivo (/
ou \
) será tratado como o nome da pasta. Se você quiser usar o mesmo nome de pasta da pasta de origem, a entrada da opção destination
deverá terminar com um separador de caminho de arquivo (/
ou \
).
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para criar uma pasta na pasta de destino.
-
As pastas de origem não existem no runtime.
-
Já existe uma pasta com o nome especificado e a opção
overwrite
está definida comofalse
. -
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
source |
O caminho da pasta de origem. | String | Sim | N/D | N/D | Sim |
destination |
O caminho da pasta de destino. | String | Sim | N/D | N/D | Sim |
overwrite |
Quando definido como false, as pastas de destino não serão substituídas quando já houver uma pasta no local especificado com o nome especificado. | Booleano | Não | true |
N/D | Sim |
Exemplo de entrada: mover uma pasta (Linux)
- name: MovingAFolderLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SourceFolder destination: /MyFolder/destinationFolder
Exemplo de entrada: mover uma pasta (Windows)
- name: MovingAFolderWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SourceFolder destination: C:\MyFolder\destinationFolder
Exemplo de entrada: mover uma pasta usando o nome da pasta de origem (Linux)
- name: MovingFolderWithSourceFolderNameLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/
Exemplo de entrada: mover uma pasta usando o nome da pasta de origem (Windows)
- name: MovingFolderWithSourceFolderNameWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\
Exemplo de entrada: mover uma pasta usando o caractere curinga (Linux)
- name: MovingFoldersWithWildCardLinux action: MoveFolder inputs: - source: /Sample/MyFolder/Sample* destination: /MyFolder/
Exemplo de entrada: mover uma pasta usando o caractere curinga (Windows)
- name: MovingFoldersWithWildCardWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\Sample* destination: C:\MyFolder\
Exemplo de entrada: mover uma pasta sem substituir (Linux)
- name: MovingFoldersWithoutOverwriteLinux action: MoveFolder inputs: - source: /Sample/MyFolder/SampleFolder destination: /MyFolder/destinationFolder overwrite: false
Exemplo de entrada: mover uma pasta sem substituir (Windows)
- name: MovingFoldersWithoutOverwriteWindows action: MoveFolder inputs: - source: C:\Sample\MyFolder\SampleFolder destination: C:\MyFolder\destinationFolder overwrite: false
Saída
Nenhum.
ReadFile
O módulo de ReadFileação lê o conteúdo de um arquivo de texto do tipo string. Esse módulo pode ser usado para ler o conteúdo de um arquivo para uso em etapas subsequentes por meio de encadeamento ou para ler dados no arquivo do console.log
. Se o caminho especificado for um link simbólico, este módulo retornará o conteúdo do arquivo de destino. Este módulo só oferece suporte a arquivos de texto.
Se o valor da codificação do arquivo for diferente do valor padrão de codificação (utf-8
), você poderá especificar o valor da codificação do arquivo usando a opção encoding
. Por padrão, presume-se que utf-16
e utf-32
usam a codificação little-endian.
Por padrão, esse módulo não pode imprimir o conteúdo do arquivo no arquivo do console.log
. Você pode substituir essa configuração definindo a propriedade printFileContent
como true
.
Esse módulo pode retornar somente o conteúdo de um arquivo. Ele não pode analisar arquivos, como Excel ou JSON arquivos.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
O arquivo não existe no runtime.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Sim |
encoding |
O padrão de codificação. | String | Não | utf8 |
utf8 , utf-8 , utf16 ,utf-16 , utf16-LE , utf-16-LE utf16-BE , utf-16-BE , utf32 , utf-32 , utf32-LE ,utf-32-LE , utf32-BE e utf-32-BE . O valor da opção de codificação não diferencia maiúsculas de minúsculas. |
Sim |
printFileContent |
Imprime o conteúdo do arquivo no arquivo console.log . |
Booleano | Não | false | N/D | Sim. |
Exemplo de entrada: ler um arquivo (Linux)
- name: ReadingFileLinux action: ReadFile inputs: - path: /home/UserName/SampleFile.txt
Exemplo de entrada: ler um arquivo (Windows)
- name: ReadingFileWindows action: ReadFile inputs: - path: C:\Windows\WindowsUpdate.log
Exemplo de entrada: ler um arquivo e especificar o padrão de codificação
- name: ReadingFileWithFileEncoding action: ReadFile inputs: - path: /FolderName/SampleFile.txt encoding: UTF-32
Exemplo de entrada: ler um arquivo e imprimir no console.log
arquivo do
- name: ReadingFileToConsole action: ReadFile inputs: - path: /home/UserName/SampleFile.txt printFileContent: true
Campo | Descrição | Tipo |
---|---|---|
content |
O conteúdo do arquivo. | string |
Exemplo de saída
{ "content" : "The file content" }
SetFileEncoding
O módulo de SetFileEncodingação modifica a propriedade de codificação de um arquivo existente. Este módulo pode converter a codificação do arquivo do utf-8
em um padrão de codificação especificado. Por padrão, presume-se que utf-16
e utf-32
usam a codificação little-endian.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a modificação especificada.
-
O arquivo não existe no runtime.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Sim |
encoding |
O padrão de codificação. | String | Não | utf8 |
utf8 , utf-8 , utf16 ,utf-16 , utf16-LE , utf-16-LE utf16-BE , utf-16-BE , utf32 , utf-32 , utf32-LE ,utf-32-LE , utf32-BE e utf-32-BE . O valor da opção de codificação não diferencia maiúsculas de minúsculas. |
Sim |
Exemplo de entrada: definir propriedade de codificação do arquivo
- name: SettingFileEncodingProperty action: SetFileEncoding inputs: - path: /home/UserName/SampleFile.txt encoding: UTF-16
Saída
Nenhum.
SetFileOwner
O módulo de SetFileOwneração modifica as propriedades owner
e do group
proprietário de um arquivo existente. Se o arquivo especificado for um link simbólico, o módulo modifica a propriedade owner
do arquivo de origem. Este módulo não é compatível com plataformas Windows.
Este módulo aceita nomes de usuários e grupos como entradas. Se o nome do grupo não for fornecido, o módulo atribuirá o proprietário do grupo do arquivo ao grupo ao qual o usuário pertence.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a modificação especificada.
-
O nome do usuário ou grupo especificado não existe no runtime.
-
O arquivo não existe no runtime.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Não compatível com Windows. |
owner |
O nome do usuário. | string | Sim | N/D | N/D | Não compatível com Windows. |
group |
O nome do grupo de usuários. | String | Não | O nome do grupo ao qual o usuário pertence. | N/D | Não compatível com Windows. |
Exemplo de entrada: definir a propriedade do proprietário do arquivo sem especificar o nome do grupo de usuários
- name: SettingFileOwnerPropertyNoGroup action: SetFileOwner inputs: - path: /home/UserName/SampleText.txt owner: LinuxUser
Exemplo de entrada: definir a propriedade do proprietário do arquivo especificando o nome do grupo de usuários
- name: SettingFileOwnerProperty action: SetFileOwner inputs: - path: /home/UserName/SampleText.txt owner: LinuxUser group: LinuxUserGroup
Saída
Nenhum.
SetFolderOwner
O módulo de SetFolderOwneração modifica recursivamente as propriedades owner
e o group
proprietário de uma pasta existente. Por padrão, o módulo pode modificar a propriedade de todo o conteúdo de uma pasta. Você pode configurar a opção recursive
para false
para substituir esse comportamento. Este módulo não é compatível com plataformas Windows.
Este módulo aceita nomes de usuários e grupos como entradas. Se o nome do grupo não for fornecido, o módulo atribuirá o proprietário do grupo do arquivo ao grupo ao qual o usuário pertence.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a modificação especificada.
-
O nome do usuário ou grupo especificado não existe no runtime.
-
A pasta não existe no runtime.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho da pasta. | String | Sim | N/D | N/D | Não compatível com Windows. |
owner |
O nome do usuário. | string | Sim | N/D | N/D | Não compatível com Windows. |
group |
O nome do grupo de usuários. | String | Não | O nome do grupo ao qual o usuário pertence. | N/D | Não compatível com Windows. |
recursive |
Substitui o comportamento padrão de modificar a propriedade de todo o conteúdo de uma pasta quando definido como false . |
Booleano | Não | true |
N/D | Não compatível com Windows. |
Exemplo de entrada: definir a propriedade do proprietário da pasta sem especificar o nome do grupo de usuários
- name: SettingFolderPropertyWithOutGroup action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser
Exemplo de entrada: definir a propriedade do proprietário da pasta sem substituir a propriedade de todo o conteúdo em uma pasta
- name: SettingFolderPropertyWithOutRecursively action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser recursive: false
Exemplo de entrada: definir a propriedade do arquivo especificando o nome do grupo de usuários
- name: SettingFolderPropertyWithGroup action: SetFolderOwner inputs: - path: /SampleFolder/ owner: LinuxUser group: LinuxUserGroup
Saída
Nenhum.
SetFilePermissions
O módulo de SetFilePermissionsação modifica o permissions
de um arquivo existente. Este módulo não é compatível com plataformas Windows.
A entrada para permissions
deve ser um valor de string.
Esse módulo de ação pode criar um arquivo com permissões definidas pelo valor unmask padrão do sistema operacional. Você deve definir o valor umask
se quiser substituir o valor padrão.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a modificação especificada.
-
O arquivo não existe no runtime.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho do arquivo. | String | Sim | N/D | N/D | Não compatível com Windows. |
permissions |
As permissões de arquivo. | String | Sim | N/D | N/D | Não compatível com Windows. |
Exemplo de entrada: modificar permissões de arquivo
- name: ModifyingFilePermissions action: SetFilePermissions inputs: - path: /home/UserName/SampleFile.txt permissions: 766
Saída
Nenhum.
SetFolderPermissions
O módulo de SetFolderPermissionsação modifica recursivamente a permissions
pasta existente e todos os seus subarquivos e subpastas. Por padrão, esse módulo pode modificar as permissões para todo o conteúdo da pasta especificada. Você pode configurar a recursive
opção para false
para substituir esse comportamento. Este módulo não é compatível com plataformas Windows.
A entrada para permissions
deve ser um valor de string.
Esse módulo de ação pode modificar as permissões de acordo com o valor umask padrão do sistema operacional. Você deve definir o valor umask
se quiser substituir o valor padrão.
O módulo de ação retorna um erro quando ocorre o seguinte:
-
Você não tem a permissão para realizar a modificação especificada.
-
A pasta não existe no runtime.
-
O módulo de ação encontra um erro ao executar a operação.
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos | Compatível com todas as plataformas |
---|---|---|---|---|---|---|
path |
O caminho da pasta. | String | Sim | N/D | N/D | Não compatível com Windows. |
permissions |
As permissões da pasta. | String | Sim | N/D | N/D | Não compatível com Windows. |
recursive |
Substitui o comportamento padrão de modificar as permissões de todo o conteúdo de uma pasta quando definido como false . |
Booleano | Não | true |
N/D | Não compatível com Windows. |
Exemplo de entrada: definir permissões de pasta
- name: SettingFolderPermissions action: SetFolderPermissions inputs: - path: SampleFolder/ permissions: 0777
Exemplo de entrada: definir permissões de pasta sem modificar as permissões para todo o conteúdo de uma pasta
- name: SettingFolderPermissionsNoRecursive action: SetFolderPermissions inputs: - path: /home/UserName/SampleFolder/ permissions: 777 recursive: false
Saída
Nenhum.
Ações de instalação de software
A seção a seguir descreve os módulos de ação que instalam ou desinstalam software.
IAMrequisitos
Se o caminho de download da instalação for um S3URI, a IAM função que você associa ao perfil da instância deverá ter permissão para executar o módulo de S3Download
ação. Para conceder a permissão necessária, anexe a S3:GetObject
IAM política à IAM função associada ao seu perfil de instância e especifique o caminho para seu bucket. Por exemplo,
.arn:aws:s3:::
BucketName
/*
MSIEntradas complexas
Se suas cadeias de caracteres de entrada contiverem aspas duplas ("
), você deverá usar um dos seguintes métodos para garantir que elas sejam interpretadas corretamente:
-
Você pode usar aspas simples (') na parte externa da string, para contê-la, e aspas duplas (“) dentro da string, conforme mostrado no exemplo a seguir.
properties: COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
Nesse caso, se você precisar usar um apóstrofo dentro de sua string, deverá contorná-la. Isso significa usar outra aspa simples (') antes do apóstrofo.
-
Você pode usar aspas duplas (“) na parte externa da string para contê-la. E você pode contornar qualquer aspa dupla dentro de sua string, usando o caractere de barra invertida (
\
), conforme mostrado no exemplo a seguir.properties: COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
Ambos os métodos passam o valor COMPANYNAME="Acme ""Widgets""
and ""Gizmos."""
para o comando msiexec.
Módulos de ações de instalação de software
Instalar MSI
O módulo de InstallMSI
ação instala um aplicativo do Windows usando um MSI arquivo. Você pode especificar o MSI arquivo usando um caminho local, um objeto URI do S3 ou uma webURL. A opção de reinicialização configura o comportamento de reinicialização do sistema.
AWSTOE gera o msiexec comando com base nos parâmetros de entrada para o módulo de ação. Os valores dos parâmetros de entrada path
(MSIlocalização do arquivo) e logFile
(localização do arquivo de log) devem estar entre aspas (“).
Os seguintes códigos de MSI saída são considerados bem-sucedidos:
-
0 (Sucesso)
-
1614 (ERROR_ PRODUCT _UNINSTALLED)
-
1641 (reinicialização iniciada)
-
3010 (reinicialização necessária)
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos |
---|---|---|---|---|---|
path |
Especifique a localização MSI do arquivo usando uma das seguintes opções:
Expressões de encadeamento são permitidas. |
String | Sim | N/D | N/D |
reboot |
Configure o comportamento de reinicialização do sistema após a execução bem-sucedida do módulo de ação. Configurações:
|
String | Não | Allow |
Allow, Force, Skip |
logOptions |
Especifique as opções a serem usadas para o registro MSI de instalação. Os sinalizadores especificados são passados para o MSI instalador, junto com o parâmetro da linha de Para obter mais informações sobre as opções de log paraMSI, consulte Opções de linha de comando |
String | Não | *VX |
i,w,e,a,r,u,c,m,o,p,v,x,+,!,* |
logFile |
Um caminho absoluto ou relativo para a localização do arquivo de log. Se o caminho de log do arquivo não existir, será criado. Se o caminho do arquivo de log não for fornecido, AWSTOE não armazenará o log MSI de instalação. |
String | Não | N/D | N/D |
properties |
MSIregistrando pares de valores-chave de propriedades, por exemplo:
Observação: a modificação das seguintes propriedades não é permitida:
|
Map[String]String | Não | N/D | N/D |
ignoreAuthenticodeSignatureErrors |
Sinalize para ignorar erros de validação de assinatura authenticode para o instalador especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores. Configurações:
|
Booleano | Não | false |
true, false |
allowUnsignedInstaller |
Sinalize para permitir a execução do instalador não assinado especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores. Configurações:
|
Booleano | Não | false |
true, false |
Exemplos
Os exemplos a seguir mostram variações da seção de entrada do documento do componente, dependendo do caminho de instalação.
Exemplo de entrada: caminho de instalação do documento local
- name: local-path-install steps: - name: LocalPathInstaller action: InstallMSI inputs: path: C:\sample.msi logFile: C:\msilogs\local-path-install.log logOptions: '*VX' reboot: Allow properties: COMPANYNAME: '"Amazon Web Services"' ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: true
Exemplo de entrada: instalação do caminho do Amazon S3
- name: s3-path-install steps: - name: S3PathInstaller action: InstallMSI inputs: path: s3://<bucket-name>/sample.msi logFile: s3-path-install.log reboot: Force ignoreAuthenticodeSignatureErrors: false allowUnsignedInstaller: true
Exemplo de entrada: instalação do caminho da web
- name: web-path-install steps: - name: WebPathInstaller action: InstallMSI inputs: path: https://<some-path>/sample.msi logFile: web-path-install.log reboot: Skip ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: false
Saída
Este é um exemplo da saída do módulo de ação InstallMSI
.
{ "logFile": "web-path-install.log", "msiExitCode": 0, "stdout": "" }
Desinstalar MSI
O módulo de UninstallMSI
ação permite que você remova um aplicativo do Windows usando um MSI arquivo. Você pode especificar a localização do MSI arquivo usando um caminho de arquivo local, um objeto URI S3 ou uma webURL. A opção de reinicialização configura o comportamento de reinicialização do sistema.
AWSTOE gera o msiexec comando com base nos parâmetros de entrada para o módulo de ação. A localização do MSI arquivo (path
) e a localização do arquivo de log (logFile
) são explicitamente colocadas entre aspas duplas (“) ao gerar o msiexec comando.
Os seguintes códigos de MSI saída são considerados bem-sucedidos:
-
0 (Sucesso)
-
1605 (ERROR_ UNKNOWN _PRODUCT)
-
1614 (ERROR_ PRODUCT _UNINSTALLED)
-
1641 (reinicialização iniciada)
-
3010 (reinicialização necessária)
Nome da chave | Descrição | Tipo | Obrigatório | Valor padrão | Valores aceitos |
---|---|---|---|---|---|
path |
Especifique a localização MSI do arquivo usando uma das seguintes opções:
Expressões de encadeamento são permitidas. |
String | Sim | N/D | N/D |
reboot |
Configure o comportamento de reinicialização do sistema após a execução bem-sucedida do módulo de ação. Configurações:
|
String | Não | Allow |
Allow, Force, Skip |
logOptions |
Especifique as opções a serem usadas para o registro MSI de instalação. Os sinalizadores especificados são passados para o MSI instalador, junto com o parâmetro da linha de Para obter mais informações sobre as opções de log paraMSI, consulte Opções de linha de comando |
String | Não | *VX |
i,w,e,a,r,u,c,m,o,p,v,x,+,!,* |
logFile |
Um caminho absoluto ou relativo para a localização do arquivo de log. Se o caminho de log do arquivo não existir, será criado. Se o caminho do arquivo de log não for fornecido, AWSTOE não armazenará o log MSI de instalação. |
String | Não | N/D | N/D |
properties |
MSIregistrando pares de valores-chave de propriedades, por exemplo:
Observação: a modificação das seguintes propriedades não é permitida:
|
Map[String]String | Não | N/D | N/D |
ignoreAuthenticodeSignatureErrors |
Sinalize para ignorar erros de validação de assinatura authenticode para o instalador especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores. Configurações:
|
Booleano | Não | false |
true, false |
allowUnsignedInstaller |
Sinalize para permitir a execução do instalador não assinado especificado no caminho. O comando Get-AuthenticodeSignature é usado para validar os instaladores. Configurações:
|
Booleano | Não | false |
true, false |
Exemplos
Os exemplos a seguir mostram variações da seção de entrada do documento do componente, dependendo do caminho de instalação.
Exemplo de entrada: remove a insta;ação do caminho do documento local
- name: local-path-uninstall steps: - name: LocalPathUninstaller action: UninstallMSI inputs: path: C:\sample.msi logFile: C:\msilogs\local-path-uninstall.log logOptions: '*VX' reboot: Allow properties: COMPANYNAME: '"Amazon Web Services"' ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: true
Exemplo de entrada: remove a instalação do caminho do Amazon S3
- name: s3-path-uninstall steps: - name: S3PathUninstaller action: UninstallMSI inputs: path: s3://<bucket-name>/sample.msi logFile: s3-path-uninstall.log reboot: Force ignoreAuthenticodeSignatureErrors: false allowUnsignedInstaller: true
Exemplo de entrada: remove a instalação do caminho da web
- name: web-path-uninstall steps: - name: WebPathUninstaller action: UninstallMSI inputs: path: https://<some-path>/sample.msi logFile: web-path-uninstall.log reboot: Skip ignoreAuthenticodeSignatureErrors: true allowUnsignedInstaller: false
Saída
Este é um exemplo da saída do módulo de ação UninstallMSI
.
{ "logFile": "web-path-uninstall.log", "msiExitCode": 0, "stdout": "" }
Módulos de ação do sistema
A seção a seguir descreve os módulos de ação que realizam ações do sistema ou atualizam as configurações do sistema.
Módulos de ação do sistema
Reinicializar
O módulo de ação de Reboot reinicia a instância. Ele tem uma opção configurável para atrasar o início da reinicialização. Por padrão, delaySeconds
está definido como 0
, o que significa que não há atraso. O tempo limite da etapa não é compatível com o módulo de ação de reinicialização, pois não se aplica quando a instância é reinicializada.
Se o aplicativo for chamado pelo Systems Manager Agent, ele entregará o código de saída (3010
para Windows, 194
para Linux) para o Systems Manager Agent. O Systems Manager Agent lida com a reinicialização do sistema conforme descrito em Como reinicializar a instância gerenciada a partir de scripts.
Se o aplicativo é invocado no host como um processo independente, ele salva o estado de execução atual, configura um gatilho de execução automática pós-reinicialização para executar novamente o aplicativo após a reinicialização e, em seguida, reinicializa o sistema.
Acionador de execução automática após a reinicialização:
-
Windows. AWSTOE cria uma entrada do Windows Task Scheduler com um gatilho que é executado automaticamente em
SystemStartup
-
Linux. AWSTOE adiciona um trabalho no crontab que é executado automaticamente após a reinicialização do sistema.
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
Esse gatilho é limpo quando o aplicativo é iniciado.
Novas tentativas
Por padrão, o número máximo de novas tentativas é definido para o CommandRetryLimit
do Systems Manager. Se o número de reinicializações exceder o limite de novas tentativas, a automação falhará. É possível alterar o limite editando o arquivo de configuração do agente do Systems Manager (Mds.CommandRetryLimit
). Consulte Configuração do runtime
Para usar o módulo de ação de Reboot, para etapas que contêm reinicialização exitcode
(por exemplo, 3010
), você deve executar o binário do aplicativo como sudo user
.
Nome da chave | Descrição | Tipo | Obrigatório | Padrão |
---|---|---|---|---|
delaySeconds |
Atrasa um determinado período de tempo antes de iniciar uma reinicialização. | Inteiro |
Não |
|
Exemplo de entrada: etapa de reinicialização
- name: RebootStep action: Reboot onFailure: Abort maxAttempts: 2 inputs: delaySeconds: 60
Saída
Nenhum.
Quando o módulo Reboot é concluído, o Image Builder continua na próxima etapa da compilação.
SetRegistry
O módulo de SetRegistryação aceita uma lista de entradas e permite que você defina o valor da chave de registro especificada. Se não existir uma chave de registro, ela será criada no caminho definido. Esse atributo se aplica somente ao Windows.
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
path |
Caminho da chave de registro. | String | Sim |
name |
Nome da chave de registro. | String | Sim |
value |
Valor da chave de registro. | String/Number/Array | Sim |
type |
Tipo de valor da chave de registro. | String | Sim |
Prefixos de caminho compatíveis
-
HKEY_CLASSES_ROOT / HKCR:
-
HKEY_USERS / HKU:
-
HKEY_LOCAL_MACHINE / HKLM:
-
HKEY_CURRENT_CONFIG / HKCC:
-
HKEY_CURRENT_USER / HKCU:
Tipos compatíveis
-
BINARY
-
DWORD
-
QWORD
-
SZ
-
EXPAND_SZ
-
MULTI_SZ
Exemplo de entrada: definir valores de chave de registro
- name: SetRegistryKeyValues action: SetRegistry maxAttempts: 3 inputs: - path: HKLM:\SOFTWARE\
MySoftWare
name:MyName
value: FirstVersionSoftware type: SZ - path: HKEY_CURRENT_USER\Software\Test name: Version value: 1.1 type: DWORD
Saída
Nenhum.
UpdateOS
O módulo de ação UpdateOS adiciona suporte para a instalação de atualizações do Windows e do Linux. Ele instala todas as atualizações disponíveis por padrão. Como alternativa, você pode configurar uma lista de uma ou mais atualizações específicas para instalar o módulo de ação. Você também pode especificar atualizações a serem excluídas da instalação.
Se as listas “incluir” e “excluir” forem fornecidas, a lista de atualizações resultante poderá incluir somente aquelas listadas na lista “incluir” que não estejam listadas na lista “excluir”.
nota
O UpdateOS não é compatível com o Amazon Linux 2023 (AL2023). Recomendamos que você atualize sua base AMI para a nova versão que vem com cada lançamento. Para outras alternativas, consulte Controlar as atualizações recebidas de versões principais e secundárias no Guia do usuário do Amazon Linux 2023.
-
Windows. As atualizações são instaladas a partir da fonte de atualização configurada na máquina de destino.
-
Linux. O aplicativo verifica o gerenciador de pacotes compatível na plataforma Linux e usa o gerenciador de pacotes
yum
ouapt-get
. Se nenhum dos dois for compatível, será retornado um erro. Você deve ter permissões desudo
para executar o módulo de ação UpdateOS. Se você não tiver permissões desudo
, umerror.Input
será retornado.
Nome da chave | Descrição | Tipo | Obrigatório |
---|---|---|---|
include |
Para Windows, você pode especificar o seguinte:
Para Linux, você pode especificar um ou mais pacotes a serem incluídos na lista de atualizações para instalação. |
Lista de strings | Não |
exclude |
Para Windows, você pode especificar o seguinte:
Para Linux, você pode especificar um ou mais pacotes a serem excluídos na lista de atualizações para instalação. |
Lista de strings | Não |
Exemplo de entrada: adicionar suporte para instalação de atualizações do Linux
- name: UpdateMyLinux action: UpdateOS onFailure: Abort maxAttempts: 3 inputs: exclude: - ec2-hibinit-agent
Exemplo de entrada: adicionar suporte para instalação de atualizações do Windows
- name: UpdateWindowsOperatingSystem action: UpdateOS onFailure: Abort maxAttempts: 3 inputs: include: - KB1234567 - '*Security*'
Saída
Nenhum.