我正在尝试在异步函数中使用 fetch 发布我的客户名称。
async function ExecuteEC2(customer) {
const response = await fetch(
'https:api',
{
method: 'POST',
body: {
Customer: customer,
},
success: function (response) {
alert(response.status);
},
error: function () {
alert("error with database");
}
}
);
}
我的按钮中使用了该函数,以便在单击它时触发 API。然后通过使用 API 网关,它会触发我们特定的 Lambda 执行。
<button
className="btn btn-primary bt-btn btn-size"
type="button"
onClick={() => {
alert("Oh, hi " + customer);
ExecuteEC2(customer);
}}
>
Configure Ansible
</button>
<Modal
showModal={showModal}
setShowModal={setShowModal}
devices={options.AllCSRList}
user={user}
customer={customer}
/>
最后,已设置 lambda 函数以读取 API 数据并将其应用到我们的 EC2。但是,每当我尝试获取客户数据时,它都不会出现。我将在哪里以及如何修改它以将其推送到帖子中?
import time
import json
import boto3
import urllib3
import requests
from pprint import pprint
region = 'eu-west-2'
instance = 'i-ec2'
ec2 = boto3.client('ec2', region_name=region)
def handler(event, context):
customer_name = event['Customer']
print(customer_name)
#boto3 client
client = boto3.client('ec2')
ssm = boto3.client('ssm')
# status = client.describe_instance_status(IncludeAllInstances = True)
# pprint(status)
# response = ssm.send_command(
# InstanceIds=['i-ec2'],
# DocumentName="AWS-RunShellScript",
# Parameters={'commands':[
# "mkdir create2.txt",
# ]},
# )
# print(response)
return {
'statusCode': 200,
'body': json.dumps(customer_name)
}
注意:我正在写关于 lambda 的 javascript 版本的答案。 发布数据位于事件对象的 body 属性中。
body = event["body"]
此外,
body
是一个 json 字符串,您必须将其转换为 json/字典。
然后
customer_name = body["Customer"]