如何将AWS凭证与Jenkins一起使用,以部署到Elastic Beanstalk?

时间:2019-01-31 02:20:12

标签: amazon-web-services jenkins amazon-elastic-beanstalk

我已经在Jenkins的/credentials中输入了AWS凭证,但是这些凭证没有显示在AWS Elastic Beanstalk插件中“构建后”步骤的下拉列表中。

enter image description here

如果我单击“验证凭据”,则会收到此奇怪的错误。

enter image description here

  

失败       com.amazonaws.SdkClientException:无法从链中的任何提供程序加载AWS凭证:[EnvironmentVariableCredentialsProvider:无法从环境变量(AWS_ACCESS_KEY_ID(或AWS_ACCESS_KEY)和AWS_SECRET_KEY(或AWS_SECRET_ACCESS_ential)可以加载AWS凭据),SystemProvider可以加载:来自Java系统属性(aws.accessKeyId和aws.secretKey),com.amazonaws.auth.profile.ProfileCredentialsProvider @ 5c932b96:配置文件不能为空,com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper @ 32abba7:在{处找不到请求的元数据{3}}           在com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:136)

我不知道该IP地址在哪里。当我在Jenkins目录中搜索该IP时,会出现

-bash-4.2$ grep -r 169.254.169.254 *
plugins/ec2/AMI-Scripts/ubuntu-init.py:conn = httplib.HTTPConnection("169.254.169.254")

该文件的内容在这里:http://169.254.169.254/latest/meta-data/iam/security-credentials/]


实际上有2个不同的Amazon Elastic Beanstalk插件。

它们都不起作用。两者都不会在下拉列表中显示凭据。自更新Jenkins以来,我什至无法显示“ Deploy to Elastic Beanstalk”作为第一个(v0.3.19)的构建后步骤,即使它是唯一安装的。

对于第二个插件(v1.7.4),我看到以下屏幕截图:

AWS Beanstalk Publisher Plugin

当我填写并运行它时,它会显示错误

No credentials provided for build!!!
Environment found (environment id='e-yfwqnurxh6', name='appenvironment'). Attempting to update environment to version label 'sprint5-13'
'appenvironment': Attempt 0/5
'appenvironment': Problem:
com.amazonaws.services.elasticbeanstalk.model.AWSElasticBeanstalkException: No Application Version named 'sprint5-13' found. (Service: AWSElasticBeanstalk; Status Code: 400; Error Code: InvalidParameterValue; Request ID: af9eae4f-ad56-426e-8fe4-4ae75548f3b1)

我试图向Elastic Beanstalk部署中添加一个S3子任务,但失败并出现异常。

  

没有提供用于构建的凭据!!!
  根文件对象是一个文件。我们假设它是一个zip文件,没关系。
  以s3://appname-sprint5-15.zip上传文件awseb-4831053374102655095.zip
  错误:构建步骤因异常而失败
  com.amazonaws.services.s3.model.AmazonS3Exception:您提供的XML格式不正确或未针对我们发布的架构进行验证(服务:Amazon S3;状态代码:400;错误代码:MalformedXML;请求ID:7C4734153DB2BC36; S3扩展请求ID:x7B5HflSeiIw ++ NGosos08zO5DxP3WIzrUPkZOjjbBv856os69QRBVgic62nW3GpMtBj1IxW7tc =),S3扩展请求ID:x7B5HflSeiIw ++ NGosostzWkBWBW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW7BW6B0B0B

2 个答案:

答案 0 :(得分:0)

詹金斯已经过时,无法维持。我以jenkins用户的身份添加了Post Build Task插件installed eb tool,在工作目录中运行eb init,编辑了.elasticbeanstalk/config.yml以添加行

deploy:
  artifact: target/AppName-Sprint5-SNAPSHOT-bin.zip

然后输入shell命令以部署构建。

/var/lib/jenkins/.local/bin/eb deploy -l sprint5-${BUILD_NUMBER}

enter image description here

答案 1 :(得分:0)

对于Eleastic beanstalk插件而言,配置AWS密钥的正确位置是Jenkins Master配置

  http://{jenkinsURL}/configure