如何在AWS SSM自动化的两个aws:runCommand步骤间直接传值?
AWS SSM自动化文档示例(两步aws:runCommand直接传递JSON数据)
以下是可直接复制使用的SSM自动化文档YAML代码,实现第一步生成JSON数据后,第二步直接访问其字段:
description: 两步runCommand传递JSON数据示例 schemaVersion: '0.3' assumeRole: '{{ AutomationAssumeRole }}' parameters: AutomationAssumeRole: type: String description: 执行自动化的IAM角色ARN default: '' mainSteps: - name: GenerateTenantData action: 'aws:runCommand' inputs: DocumentName: 'AWS-RunPowerShellScript' Parameters: commands: | $tenantData = @{ Role = 'Some text'; NextInstance = 'some value'; } return $tenantData | ConvertTo-Json; - name: UseTenantData action: 'aws:runCommand' inputs: DocumentName: 'AWS-RunPowerShellScript' Parameters: commands: | # 从第一步输出获取JSON并解析 $jsonData = '{{ GenerateTenantData.Output }}' | ConvertFrom-Json # 直接访问字段 Write-Host "Role字段值: $($jsonData.Role)" Write-Host "NextInstance字段值: $($jsonData.NextInstance)" dependsOn: - GenerateTenantData
关键说明
- 第二步通过
{{ GenerateTenantData.Output }}直接引用第一步的返回结果 - 在PowerShell脚本里用
ConvertFrom-Json将JSON字符串转为对象,即可直接访问Role和NextInstance字段 dependsOn配置确保第二步在第一步执行完成后再运行
内容的提问来源于stack exchange,提问作者zdenko.s
相关产品推荐
相关产品推荐

