如何传递的值 account_id
由下面的python lambda函数获取到curl命令中的json值,用于调用bitbucket端点api代码:
import json
import boto3
import os
from boto3.dynamodb.conditions import Key
def lambda_handler(event, context):
print('##Below Event occured')
eventName = event['Records'][0]['eventName']
request_status = event['Records'][0]['dynamodb']['NewImage'
]['request_status']['S']
account_id = event['Records'][0]['dynamodb']['NewImage'
]['account_id']['S']
if eventName == "INSERT" and request_status == "Approved":
print("Condition ran Successfully")
script = """
curl -X POST -is -u USERNAME:PASSWORD \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/workspace/repo/pipelines/ \
-d '
{
"target": {
"type": "pipeline_ref_target",
"ref_type": "branch",
"ref_name": "master",
"selector": {
"type": "custom",
"pattern": "create-aws-account"
}
},
"variables": [
{
"key": "account_id",
"value": "000000011",
"secured": true
}
]
}'
"""
os.system(script)
1条答案
按热度按时间krcsximq1#
正如@charles duffy所建议的,这种方法具有潜在的危险性,并且会受到恶意命令的影响。不鼓励使用与未知用户输入连接的字符串运行命令。
使用f字符串:
哪里
{variable_name}
是要插入的值的占位符,并且{{
及}}
是用来逃避大括号的。