我有一个调用远程 EC2 上的批处理文件的 Bamboo 任务。该批处理文件执行测试,然后调用 PowerShell 脚本来解析测试。
最后,我获取了竹服务器的实例 ID,并通过 ssm 将测试结果发回。
当我尝试发送我的结果时,我的问题存在于 PowerShell 脚本中。我使用“describe-instances”来检索 Bamboo 服务器 ID:
Set-AWSCredential -StoreAs default -AccessKey <key> -SecretKey <key>
$instanceid = aws ec2 describe-instances --profile default --region "us-east-1" --filters 'Name=tag:Name,Values=Bamboo Server' --query 'Reservations[*].Instances[*].InstanceId' --output text
Send-SSMCommand -InstanceId $instanceId -DocumentName AWS-RunPowerShellScript -Parameter -Comment
*注意:我的 Bamboo 服务器与我的测试位于不同的 EC2 上。
所以,如果我从我的 Bamboo Build Plan 中调用批处理文件。“describe-instances”命令运行不正确。
但是,如果我在远程 EC2 上本地运行批处理文件,则该过程运行顺利。
我试过:
- “描述实例”的多种变体,包括 Get-EC2Instance 和其他。
- 我相信我的权限设置正确。但也许“描述实例”没有抓住它。我尝试了许多设置凭据的变体,包括 aws configure、从环境变量和文件手动加载。
- 我放入 Start-Sleeps 以确保我没有异步问题。
当我从 Bamboo 任务中调用它时,就像命令拒绝运行一样。
我注意到测试在本地前台运行,当从 Bamboo 调用时在后台运行。
我的问题可能是安全问题吗?就像从 Bamboo 运行不允许命令运行一样?我找不到任何来自 AWS 或 Bamboo 的文档来解释这一点。
有任何想法吗?