我正试图在Azure管道的script
部分中使用AWS cli。脚本部分在一个模板文件中,可以从主管道访问。
steps:
- bash: |
step_function_state=`aws stepfunctions list-executions --state-machine-arn $(stateMachineArn) --status-filter RUNNING | jq -r '.executions[]|.status' | head -1`
echo "State machine RUNNING status: ${step_function_state}"
# Rest of the script#
displayName: "Test Script"
env:
AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
AWS_DEFAULT_REGION: $(AWS_DEFAULT_REGION)
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
stateMachineArn
、AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
和AWS_DEFAULT_REGION
被存储在变量组中。运行管道时,会出现以下错误,
调用ListExecutions操作时发生错误(UnrecoguedClientException(:请求中包含的安全令牌无效。
使用相同的凭据,我可以运行本地CLI并获得结果。我尝试了printenv
命令,所有的AWS变量也都在环境中。我可能做错了什么?
我意识到这个问题是由于凭据不匹配引起的。添加正确的凭据(与本地cli相同(后,管道cli也开始工作。根据错误日志,感觉aws_session_token
可能是一个问题,但实际问题在aws_access_key_id
和aws_secret_access_key
中。