إنترنت الأشياء على AWS: دليل شامل
اكتشف خدمات AWS المخصصة لتطوير حلول إنترنت الأشياء (IoT) وإدارتها.
I
InSkillCoach
· دقيقة
إنترنت الأشياء على AWS: دليل شامل
اكتشف خدمات AWS المخصصة لتطوير حلول إنترنت الأشياء (IoT) وإدارتها.
1. AWS IoT Core
إعداد الخدمة
# مثال على إعداد IoT Core
import boto3
def setup_iot_core():
iot = boto3.client('iot')
# إنشاء سياسة
policy = iot.create_policy(
policyName='MonPolicy',
policyDocument=json.dumps({
'Version': '2012-10-17',
'Statement': [
{
'Effect': 'Allow',
'Action': [
'iot:Connect',
'iot:Publish',
'iot:Subscribe'
],
'Resource': '*'
}
]
})
)
# إنشاء شيء (Thing)
thing = iot.create_thing(
thingName='MonCapteur',
attributePayload={
'attributes': {
'type': 'temperature',
'location': 'salle-1'
}
}
)
return {
'policy_arn': policy['policyArn'],
'thing_arn': thing['thingArn']
}
إدارة الشهادات
# مثال على إدارة شهادات IoT
def manage_iot_certificates():
iot = boto3.client('iot')
# إنشاء شهادة
certificate = iot.create_keys_and_certificate(
setAsActive=True
)
# إرفاق السياسة
iot.attach_policy(
policyName='MonPolicy',
target=certificate['certificateArn']
)
# الإرفاق بالشيء (Thing)
iot.attach_thing_principal(
thingName='MonCapteur',
principal=certificate['certificateArn']
)
return {
'certificate_arn': certificate['certificateArn'],
'public_key': certificate['keyPair']['PublicKey'],
'private_key': certificate['keyPair']['PrivateKey']
}
2. AWS IoT Greengrass
إعداد Greengrass
# مثال على إعداد Greengrass
def setup_greengrass():
greengrass = boto3.client('greengrass')
# إنشاء مجموعة
group = greengrass.create_group(
Name='MonGroupe',
InitialVersion={
'CoreDefinitionVersionArn': 'arn:aws:greengrass:region:account:/greengrass/definition/cores/1',
'DeviceDefinitionVersionArn': 'arn:aws:greengrass:region:account:/greengrass/definition/devices/1',
'FunctionDefinitionVersionArn': 'arn:aws:greengrass:region:account:/greengrass/definition/functions/1'
}
)
# إنشاء تعريف دالة
function = greengrass.create_function_definition(
Name='MonFonction',
InitialVersion={
'Functions': [
{
'FunctionArn': 'arn:aws:lambda:region:account:function:MonFonction',
'FunctionConfiguration': {
'Executable': 'python3.7',
'MemorySize': 128,
'Pinned': True,
'Timeout': 3
},
'Id': 'MonFonctionId'
}
]
}
)
return {
'group_id': group['Id'],
'function_arn': function['LatestVersionArn']
}
نشر الدوال
# مثال على نشر دوال Greengrass
def deploy_greengrass_function():
greengrass = boto3.client('greengrass')
# إنشاء إصدار للمجموعة
group_version = greengrass.create_group_version(
GroupId='MonGroupe',
CoreDefinitionVersionArn='arn:aws:greengrass:region:account:/greengrass/definition/cores/1',
DeviceDefinitionVersionArn='arn:aws:greengrass:region:account:/greengrass/definition/devices/1',
FunctionDefinitionVersionArn='arn:aws:greengrass:region:account:/greengrass/definition/functions/1'
)
# النشر
deployment = greengrass.create_deployment(
GroupId='MonGroupe',
DeploymentType='NewDeployment',
GroupVersionId=group_version['Version']
)
return deployment['DeploymentId']
3. AWS IoT Analytics
إعداد القناة
# مثال على إعداد IoT Analytics
def setup_iot_analytics():
analytics = boto3.client('iotanalytics')
# إنشاء قناة
channel = analytics.create_channel(
channelName='MonCanal',
retentionPeriod={
'unlimited': False,
'numberOfDays': 30
},
storage={
'serviceManagedS3': {}
}
)
# إنشاء خط معالجة (Pipeline)
pipeline = analytics.create_pipeline(
pipelineName='MonPipeline',
activities=[
{
'name': 'MonActivite',
'selectAttributes': {
'attributes': ['temperature', 'timestamp']
}
}
]
)
return {
'channel_arn': channel['channelArn'],
'pipeline_arn': pipeline['pipelineArn']
}
معالجة البيانات
# مثال على معالجة بيانات IoT
def process_iot_data():
analytics = boto3.client('iotanalytics')
# إنشاء مجموعة بيانات (dataset)
dataset = analytics.create_dataset(
datasetName='MonDataset',
actions=[
{
'actionName': 'MonAction',
'queryAction': {
'sqlQuery': 'SELECT temperature, timestamp FROM MonCanal WHERE temperature > 30'
}
}
],
triggers=[
{
'schedule': {
'expression': 'rate(1 hour)'
}
}
]
)
return dataset['datasetArn']
4. AWS IoT Device Defender
إعداد الأمان
# مثال على إعداد Device Defender
def setup_device_defender():
defender = boto3.client('iotdevice')
# إنشاء مهمة تدقيق
audit_task = defender.create_audit_suppression(
checkName='CA_CERTIFICATE_EXPIRING_CHECK',
resourceIdentifier={
'deviceCertificateId': 'MonCertificat'
},
expirationDate=datetime.now() + timedelta(days=30)
)
# إعداد المقاييس
metrics = defender.create_metrics_reporting(
targetArn='arn:aws:iot:region:account:thing/MonCapteur',
metricsConfig={
'metrics': [
{
'name': 'CPUUtilization',
'threshold': 80
}
]
}
)
return {
'task_id': audit_task['taskId'],
'metrics_arn': metrics['metricsArn']
}
مراقبة الأجهزة
# مثال على مراقبة الأجهزة
def monitor_devices():
defender = boto3.client('iotdevice')
# إنشاء مهمة مراقبة
task = defender.create_task(
taskName='MonTache',
targets=['arn:aws:iot:region:account:thing/MonCapteur'],
taskType='AUDIT',
taskParameters={
'checkName': 'CA_CERTIFICATE_EXPIRING_CHECK',
'resourceIdentifier': {
'deviceCertificateId': 'MonCertificat'
}
}
)
return task['taskId']
5. AWS IoT Events
إعداد أجهزة الكشف
# مثال على إعداد IoT Events
def setup_iot_events():
events = boto3.client('iotevents')
# إنشاء جهاز كشف (detector)
detector = events.create_detector_model(
detectorModelName='MonDetecteur',
detectorModelDefinition={
'states': [
{
'stateName': 'Normal',
'onInput': {
'events': [
{
'eventName': 'TemperatureHigh',
'condition': 'temperature > 30',
'actions': [
{
'setVariable': {
'variableName': 'alert',
'value': 'true'
}
}
]
}
]
}
}
]
}
)
return detector['detectorModelArn']
إدارة الأحداث
# مثال على إدارة أحداث IoT
def manage_iot_events():
events = boto3.client('iotevents')
# إنشاء مدخل (input)
input = events.create_input(
inputName='MonInput',
inputDefinition={
'attributes': [
{
'jsonPath': '$.temperature',
'dataType': 'DOUBLE'
}
]
}
)
# إنشاء مخرج (output)
output = events.create_output(
outputName='MonOutput',
outputDefinition={
'attributes': [
{
'jsonPath': '$.alert',
'dataType': 'BOOLEAN'
}
]
}
)
return {
'input_arn': input['inputArn'],
'output_arn': output['outputArn']
}
الخاتمة
النقاط الرئيسية التي يجب تذكرها:
- إدارة الأجهزة باستخدام IoT Core
- معالجة البيانات على الأطراف (Edge) باستخدام Greengrass
- تحليل البيانات باستخدام IoT Analytics
- تأمين الأجهزة باستخدام Device Defender
- اكتشاف الأحداث باستخدام IoT Events
التوصيات:
- اختيار الخدمات المناسبة وفقًا للاحتياجات
- تحسين الاتصال
- إرساء مراقبة فعّالة
- تأمين الاتصالات
- اتباع أفضل ممارسات AWS
نبذة عن InSkillCoach
خبير في التدريب والتقنيات
مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.
الشهادات:
- AWS Certified Solutions Architect – Professional
- شهادات Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
871
220
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش