aws:executeScript
: ejecutar un script
importante
A partir del 4 de diciembre de 2024, no se podrán crear ni actualizar manuales de procedimientos que usen la acción aws:executeScript
con los tiempos de ejecución de Python 3.6, 3.7 o 3.8. A partir del 18 de febrero de 2025, no se podrán ejecutar manuales de procedimientos que usen la acción aws:executeScript
con los tiempos de ejecución de Python 3.6, 3.7 o 3.8. Recomendamos actualizar los manuales de procedimientos que utilizan la acción aws:executeScript
con los tiempos de ejecución de Python a Python 3.11 antes del 4 de diciembre de 2024.
Ejecuta el script Python o PowerShell proporcionado mediante el uso del tiempo de ejecución y el controlador especificados. Cada acción aws:executeScript
puede ejecutarse hasta un máximo de 600 segundos (10 minutos). Puede limitar el tiempo de espera mediante la especificación del parámetro timeoutSeconds
para un paso aws:executeScript
.
Utilice instrucciones de devolución en la función para agregar salidas a la carga útil de salida. Para ver ejemplos sobre cómo definir salidas para la acción aws:executeScript
, consulte Ejemplo 2: manual de procedimientos con scripts. También puede enviar la salida de acciones aws:executeScript
de los manuales de procedimientos al grupo de registros de Amazon CloudWatch Logs que especifique. Para obtener más información, consulte Registro de salida de acción de Automation con CloudWatch Logs.
Si desea enviar la salida desde acciones aws:executeScript
a los Registros de CloudWatch o si los scripts que especifica para la llamada de acciones aws:executeScript
las operaciones de la API de AWS, siempre se requiere un rol de servicio de AWS Identity and Access Management (IAM) (o asumir un rol) para ejecutar el manual de procedimientos.
La acción aws:executeScript
contiene los siguientes módulos de PowerShell Core preinstalados:
-
Microsoft.PowerShell.Host
-
Microsoft.PowerShell.Management
-
Microsoft.PowerShell.Security
-
Microsoft.PowerShell.Utility
-
PackageManagement
-
PowerShellGet
Para utilizar módulos de PowerShell Core que no estén preinstalados, el script debe instalar el módulo con la marca -Force
, como se muestra en el siguiente comando. No se admite el módulo AWSPowerShell.NetCore
. Reemplace ModuleName
con el módulo que desee instalar.
Install-Module
ModuleName
-Force
Para utilizar cmdlets de PowerShell Core en el script, se recomienda utilizar los módulos de AWS.Tools
, como se muestra en los siguientes comandos. Reemplace cada example resource placeholder
con su propia información.
-
Cmdlets de Amazon S3
Install-Module AWS.Tools.S3 -Force Get-S3Bucket -BucketName
amzn-s3-demo-bucket
-
Cmdlets de Amazon EC2
Install-Module AWS.Tools.EC2 -Force Get-EC2InstanceStatus -InstanceId
instance-id
-
Cmdlets de AWS Tools for Windows PowerShell comunes o independientes del servicio
Install-Module AWS.Tools.Common -Force Get-AWSRegion
Si el script inicializa nuevos objetos además de usar cmdlets de PowerShell Core, también debe importar el módulo como se muestra en el siguiente comando.
Install-Module AWS.Tools.EC2 -Force Import-Module AWS.Tools.EC2 $tag = New-Object Amazon.EC2.Model.Tag $tag.Key = "Tag" $tag.Value = "TagValue" New-EC2Tag -Resource
i-02573cafcfEXAMPLE
-Tag $tag
Para obtener ejemplos de instalación e importación de módulos de AWS.Tools
, y de uso de cmdlets de PowerShell Core en los manuales de procedimientos, consulte Uso del Generador de documentos para crear un manual de procedimientos.
Entrada
Proporcione la información necesaria para ejecutar el script. Reemplace cada example resource placeholder
con su propia información.
nota
El archivo adjunto de un script de Python puede ser un archivo .py o uno .zip que contenga el script. Los scripts de PowerShell deben almacenarse en archivos .zip.
- Tiempo de ejecución
-
Lenguaje de tiempo de ejecución que se utilizará para ejecutar el script proporcionado.
aws:executeScript
admite scripts de Python 3.7 (python3.7), Python 3.8 (python3.8), Python 3.9 (python3.9), Python 3.10 (python3.10), Python 3.11 (python3.11), PowerShell Core 6.0 (dotnetcore2.1) y PowerShell 7.0 (dotnetcore3.1).Valores admitidos:
python3.7
|python3.8
|python3.9
|python3.10
|python3.11
|PowerShell Core 6.0
|PowerShell 7.0
Tipo: cadena
Obligatorio: sí
- Controlador
-
Nombre de la función. Debe asegurarse de que la función definida en el controlador tenga dos parámetros,
events
ycontext
. El tiempo de ejecución de PowerShell no admite este parámetro.Tipo: cadena
Requerido: Sí (Python) | No admitido (PowerShell)
- InputPayload
-
Un objeto JSON o YAML que se pasará al primer parámetro del controlador. Se puede usar para pasar los datos de entrada al script.
Tipo: cadena
Requerido: no
- Script
-
Un script insertado que desea ejecutar durante la automatización.
Tipo: cadena
Requerido: No (Python) | Sí (PowerShell)
- Conexión
-
Nombre de un archivo de script independiente o archivo .zip que puede invocarse mediante la acción. Especifique el mismo valor que el
Name
del archivo adjunto de documento que especifique en el parámetro de solicitudAttachments
. Para obtener más información, consulte Archivos adjuntos en la referencia de la API de AWS Systems Manager. Si proporciona un script mediante un archivo adjunto, también debe definir una secciónfiles
en los elementos de nivel superior del manual de procedimientos. Para obtener más información, consulte Versión de esquema 0.3.Si desea invocar un archivo para Python, use el formato
filename.method_name
enHandler
.nota
El archivo adjunto de un script de Python puede ser un archivo .py o uno .zip que contenga el script. Los scripts de PowerShell deben almacenarse en archivos .zip.
Al incluir bibliotecas de Python en su archivo adjunto, recomendamos que agregue un archivo
__init__.py
vacío en cada directorio del módulo. Esto le permite importar los módulos desde la biblioteca del archivo adjunto dentro del contenido de su script. Por ejemplo:from library import module
Tipo: cadena
Requerido: no
Salida
- Carga
-
La representación JSON del objeto devuelta por su función. Se devuelven hasta 100 KB. Si genera una lista, incluirá un máximo de 100 elementos.