从 AWS Parameter Store 设置 Jenkins 参数
Posted
技术标签:
【中文标题】从 AWS Parameter Store 设置 Jenkins 参数【英文标题】:Set Jenkins parameters from AWS Parameter Store 【发布时间】: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 感谢您提供语法。一旦完成凭证部分,它就可以无缝地工作了。
【参考方案1】:
分配给运行 Jenkins 的 EC2 实例的 IAM 角色没有帮助。我们仍然需要在 Jenkins 中使用 IAM 访问权限和密钥创建凭证。 为了捕获数据,您可以按照以下方式进行操作:
withAWSParameterStore(credentialsId: 'myjenkins-id',
namePrefixes: 'Test',
regionName: '########')
echo "$env.Test"
echo "$env.TEST"
echo TEST ```
【讨论】:
以上是关于从 AWS Parameter Store 设置 Jenkins 参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 aws-sdk-v1 从 ruby 脚本中的 AWS SSM Parameter Store 获取数据
PHP - 如何缓存从 AWS KMS Parameter Store 检索的数据库凭证
NestJs TypeORM 配置使用 AWS Parameter Store
为啥将 Spring Cloud 应用程序与 AWS Parameter Store 集成不会从参数存储中返回任何属性?