【问题标题】:Set Jenkins parameters from AWS Parameter Store从 AWS Parameter Store 设置 Jenkins 参数
【发布时间】:2022-01-17 01:50:09
【问题描述】:

我正在尝试从 AWS Parameter Store 获取 Jenkins CI/CD 管道的环境变量。我已将 IAM 角色分配给此实例,因此不需要传递任何凭据。 这是我的参数

{
    "Parameters": [
        {
            "Name": "Test",
            "Type": "String",
            "Value": "Hello World",
            "Version": 1,
            "LastModifiedDate": 1639400445.755,
            "ARN": "arn:aws:ssm:########:#########:parameter/Test",
            "DataType": "text"
        }
    ],
    "InvalidParameters": []
}

我已经安装了 AWS Parameter Store Build Wrapper 插件并使用 withAWSParameterStore 方法来获取值。

这就是我的尝试

val = withAWSParameterStore(namePrefixes: "Test", regionName: '#######'){}
echo val

变量 var 返回 null。

如何在此处捕获值“Hello World”。

【问题讨论】:

  • 参数将在withAWSParameterStore 块内可用。试试withAWSParameterStore(namePrefixes: "Test", regionName: '###'){ echo "My parameter value is ${Test}"}
  • @NoamHelmer 它没有识别参数测试。收到错误groovy.lang.MissingPropertyException: No such property: Test for class: groovy.lang.Binding
  • 尝试env.Test,如果它不起作用,则说明withAWSParameterStore 关键字的参数存在问题。
  • 问题出在凭据上,我必须明确传递凭据,而分配给 Jenkins 服务器的 IAM 角色在这里没有帮助。 @NoamHelmer
  • @NoamHelmer 感谢您提供语法。一旦完成凭证部分,它就可以无缝地工作了。

标签: amazon-web-services jenkins jenkins-pipeline jenkins-plugins aws-parameter-store


【解决方案1】:

分配给运行 Jenkins 的 EC2 实例的 IAM 角色没有帮助。我们仍然需要在 Jenkins 中使用 IAM 访问权限和密钥创建凭证。 为了捕获数据,您可以按照以下方式进行操作:

withAWSParameterStore(credentialsId: 'myjenkins-id', 
namePrefixes: 'Test', 
regionName: '########') { 
         echo "${env.Test}" 
         echo "${env.TEST}" 
         echo TEST} ```

【讨论】:

    猜你喜欢
    • 2018-02-19
    • 2019-09-18
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2022-10-09
    • 2018-08-26
    • 2022-06-22
    相关资源
    最近更新 更多