我的一个PowerShell构建步骤是一个只在TeamCity中运行时才会出现的问题。我可以从PowerShell控制台运行相同的文件而不会出错。
$loadedAssembly = [System.Reflection.Assembly]::LoadFrom("C:\\powershell\\AWSSDK.dll")
$accessKeyID="1234"
$secretKeyID="1234"
$client=[Amazon.AWSClientFactory]::CreateAmazonEC2Client($accessKeyID,$secretKeyID)
TeamCity中的错误是
[04:38:22][Step 2/2] T:\TeamCity\BuildAgent2\temp\buildTmp\powershell2271598119506819752.ps1 :
[04:38:22][Step 2/2] Exception calling "CreateAmazonEC2Client" with "2" argument(s): "No
[04:38:22][Step 2/2] RegionEndpoint or ServiceURL configured"
[04:38:22][Step 2/2] + CategoryInfo : NotSpecified: (:) [Write-Error], MethodInvocatio
[04:38:22][Step 2/2] nException
[04:38:22][Step 2/2] + FullyQualifiedErrorId : System.Management.Automation.MethodInvocationExc
[04:38:22][Step 2/2] eption,powershell2271598119506819752.ps1
[04:38:22][Step 2/2]
[04:38:22][Step 2/2] Process exited with code 1
任何帮助表示赞赏
答案 0 :(得分:0)
如果您在EC2实例中使用powershell控制台,则很可能会提示您设置默认区域。如果在SDK存储中设置了默认区域,则该配置为shared between AWS Powershell and the AWS .NET SDK。
此配置不在Windows用户之间共享,因此您的TeamCity代理很可能正在其他用户(系统用户?)上运行,而该用户不了解您的配置更改在控制台制作。
有两个简单的选择:
示例:
public static AmazonEC2 CreateAmazonEC2Client(
string awsAccessKey,
string awsSecretAccessKey,
RegionEndpoint region
)
Initialize-AWSDefaults
明确设置会话默认值。