
أداة GraphQL API وCSPM العالمية لـ AWS، Azure، GCP، K8s، وtencent.
CloudGraph هي أداة مجانية مفتوحة المصدر وعالمية لـ GraphQL API وإدارة وضع الأمان السحابي (CSPM) لـ AWS و Azure و GCP و K8s. مع CloudGraph تحصل على:
يتيح لك Cloud Graph معرفة السحابة الخاصة بك في 5 دقائق. تم بناؤه وصيانته بحب من قبل الفريق في ❤️ AutoCloud ❤️
💻 التوثيق
💰 احصل على أجر لبناء موفري CloudGraph
** الاستخدام لا يعني التأييد
قامت AWS و Azure و GPC بعمل رائع في بناء حلول تتيح للمهندسين مثلنا إنشاء أنظمة لتشغيل عالمنا المترابط بشكل متزايد. على مدى السنوات الخمس عشرة الماضية، غيرت منتجات مثل EC2 و S3 و RDS و Lambda بشكل أساسي كيفية تفكيرنا في الحوسبة والتخزين وقواعد البيانات.
مع انتشار Kubernetes و Serverless في السنوات الخمس الأخيرة تقريبًا، أصبحت الخدمات السحابية مجردة بشكل متزايد فوق أرفف الخوادم المادية. بالنسبة للمستخدمين النهائيين، كل شيء على السحابة هو مجرد API، لذلك لا نحتاج بالضرورة إلى معرفة كيفية عمل Lambda Functions أو EKS تحت الغطاء لنتمكن من استخدامها لبناء التطبيقات. مع القليل من التوثيق، والوصول إلى API أو وحدة التحكم، والبرنامج التعليمي، يمكن لأي شخص إلى حد كبير إنشاء أي شيء يحتاجه.
أدت هذه التجريدات إلى تحسينات هائلة في الراحة العامة ونطاق عروض خدمات CSP. ما كان في السابق عملية شاقة وتستغرق وقتًا طويلاً وعرضة للخطأ لتوفير خوادم جديدة أو قواعد بيانات أو أنظمة ملفات يمكن الآن القيام به في ثوانٍ بمجرد النقر فوق زر أو نشر IAC. نظرًا لأن كل شيء هو مجرد تجريد API، فعندما يكون CAP جاهزًا لتقديم "منتج" جديد، فإنهم ببساطة يحتاجون إلى كشف API جديد - نعم، أنا بالطبع أبسط الأمر قليلاً :)
أي شخص على دراية بـ CSPs يعرف أن واجهات برمجة تطبيقات الخدمة غالبًا ما تكون مقسمة إلى مساحات أسماء معيارية تحتوي على عشرات، إن لم يكن المئات، من طرق API منفصلة لموارد فردية. على سبيل المثال، تحتوي خدمة AWS EC2 على أكثر من 500 طريقة API مختلفة، مع إضافة طرق جديدة بين الحين والآخر. أي شركة تبني أنظمة كبيرة على CSP من المحتمل أن تستخدم العديد والعديد من الخدمات المختلفة.
على الرغم من أنها تحفة معمارية لمركز البيانات، إلا أن هذا الاختيار لمئات الخدمات وخيارات التكوين يضع عبء المعرفة حول كيفية استخدام هذه الخدمات بشكل صحيح على عاتقنا نحن المهندسين. نتيجة لذلك، نجد أنفسنا مضطرين إلى البقاء على اطلاع دائم بالخدمات الجديدة أو التغييرات. وهذا يتطلب قدرًا كبيرًا من الوقت والطاقة العقلية. كمطورين، قد يكون من الصعب والمستهلك للوقت والمحبط استخدام AWS CLI لإجراء 5 مكالمات API مختلفة لوصف، على سبيل المثال، مجموعة ECS AWS، وخدماتها، وتعريفات المهام، والمهام، وتعريفات الحاويات، إلخ. غالبًا ما نجد أنفسنا ضائعين في التوثيق ونضطر إلى استخدام نصف دستة من واجهات برمجة التطبيقات للحصول على إجابات لأسئلة مثل "ما الذي يعمل بالضبط في هذا VPC؟"
هذا يعني أن AWS و Azure و GCP يمكن أن تصبح ساحقة بسرعة حتى لمهندسي السحابة المتمرسين. بينما تتفوق CSPs في بناء الخدمات الفعلية التي تشغل أعمالنا، لم يتم إحراز تقدم كبير في تبسيط تجربة المستخدم اليومية للاستعلام عن هذه المئات من الخدمات بطريقة منطقية.
حاولت حلول جديدة مثل Cloud Control API لـ AWS إنشاء واجهة موحدة للاستعلام عن العديد من أنواع موارد AWS المختلفة. لسوء الحظ، استخدام Cloud Control API محدود بشدة، ولا يزال المستخدمون بحاجة إلى معرفة كيفية الاستعلام عن بياناتهم بشكل صحيح. وهذا يعني المزيد من الوقت المستغرق في قراءة التوثيق وفهم كيفية عمل الخدمات وعلاقتها ببعضها البعض.
بينما تعتبر نمطية واجهات برمجة تطبيقات CSP نظامًا تنظيميًا منطقيًا رائعًا ولها معنى، إلا أنها تشكل عبئًا على المستخدمين النهائيين من حيث العبء المعرفي ومنحنى التعلم. الاضطرار إلى تذكر كيفية عمل مئات الخدمات المتغيرة باستمرار وكيفية ارتباطها يؤدي إلى إدمان الكافيين وإضاعة الوقت في لعب دور المباحث.
ألن يكون رائعًا لو كان لدينا كمهندسي DevOps/Cloud طريقة أبسط لاستخراج بياناتنا من AWS و Azure و GCP وغيرها؟ طريقة تعكس حاجتنا إلى الاستعلام بسهولة عن أي بيانات حول أي خدمة في أي حساب دون الحاجة إلى قضاء ساعات في التوثيق أو Stack Overflow؟
لهذه الأسباب قمنا ببناء CloudGraph، واجهة GraphQL API لكل شيء سحابي. يقوم CloudGraph باستخراج بياناتك السحابية وتطبيعها ومعالجتها وإثرائها مما يسمح لك بالوصول إلى رؤى عميقة عبر موفري متعددين بجهد ضئيل. اطلع على مقالنا The GraphQL API for everything لمعرفة المزيد.
لاحظ أن CloudGraph يتطلب أذونات للقراءة فقط للتشغيل، وبالتالي لا يمكنه أبدًا تعديل البنية التحتية السحابية الفعلية الخاصة بك. بالإضافة إلى ذلك، لا يتم أبدًا إرسال أي معلومات عن بيئتك السحابية إلى CloudGraph أو AutoCloud أو أي طرف ثالث آخر أو مشاركتها معهم.
تحت الغطاء، يتصل CloudGraph بمزود (مزودي) السحابة الخاص بك، ويسحب جميع بيانات التكوين، ويعالجها، ويخزن نسخة من هذه البيانات لك في Dgraph. ثم يعرض نقطة نهاية على http://localhost:8997 تتيح لك كتابة استعلامات GraphQL مقابل بياناتك المخزنة. لا تسمح لك هذه الاستعلامات بفعل أي شيء يمكنك فعله باستخدام AWS SDK/CLI فحسب، بل تسمح لك أيضًا بتشغيل استعلامات أكثر قوة. يأتي CloudGraph مزودًا بأدوات استعلام GraphQL جاهزة بما في ذلك GraphQL Playground و Altair ولكن يمكنك أيضًا استخدام أدواتك الخاصة. كما يتضمن أداة تصور للمخطط تسمى Voyager حتى تتمكن من فهم العلاقات بين الكيانات.
يدعم CloudGraph حاليًا AWS و Azure و GCP و K8s و Tencent (عدة مزودين آخرين قادمون قريبًا). يحتاج CloudGraph إلى أذونات القراءة من أجل استيعاب بياناتك. لتسهيل الأمور، يمكنك استخدام نفس الأذونات التي نستخدمها داخليًا عند تشغيل CloudGraph لتشغيل AutoCloud. فيما يلي أدلة المصادقة والتفاصيل حول كيفية إنشاء بيانات الاعتماد لكل مزود (لا تتردد في ترك التكوين الخاص بـ AutoCloud):
متطلبات النظام
هناك طريقتان لتثبيت CloudGraph CLI
يمكنك تثبيت CloudGraph باستخدام homebrew باستخدام الأمر التالي:
brew install cloudgraphdev/tap/cg
استخدم هذا الأمر لتثبيت CloudGraph وتحديثه إلى أحدث إصدار.```bash npm i -g @cloudgraph/cli
<p align="center">
<a href="https://github.com/cloudgraphdev/cli/raw/main/docs/images/install.gif">
<img alt="install" src="https://raw.githubusercontent.com/cloudgraphdev/cli/main/docs/images/install.gif" width="95%" style="display: block; margin: auto"/>
</a>
</p>
<br/>
يمكنك بعد ذلك إضافة المزودين الذين تريدهم (روابط لمستودعات المزودين: [AWS](https://github.com/cloudgraphdev/cloudgraph-provider-aws), [Azure](https://github.com/cloudgraphdev/cloudgraph-provider-azure), [GCP](https://github.com/cloudgraphdev/cloudgraph-provider-gcp), [K8s](https://github.com/cloudgraphdev/cloudgraph-provider-k8s), [Tencent Docs](https://github.com/cloudgraphdev/cloudgraph-provider-tencent)):```bash
cg init aws
cg init azure
cg init gcp
cg init k8s
cg init tencent
يمكنك أيضًا إضافة ما تشاء دفعة واحدة```bash cg init aws azure gcp k8s tencent
وأضف حزم سياسات الامتثال لتكملة بياناتك برؤى أمنية فورية:```bash
cg policy add gcp-cis-1.2.0
cg policy add azure-cis-1.3.1
cg policy add aws-cis-1.2.0
cg policy add aws-cis-1.3.0
cg policy add aws-cis-1.2.0
cg policy add aws-pci-dss-3.2.1
cg policy add aws-nist-800-53-rev4
يمكنك العثور على قائمة بحزم السياسات المدعومة حاليًا في مستودع حزم السياسات
يمكنك البدء والتشغيل بثلاثة أوامر بسيطة:
cg init
1. يقوم هذا الأمر بتهيئة إعدادات CloudGraph. سيطرح عليك هذا الأمر سلسلة من الأسئلة حول الموفرين الذين تستخدمهم وكيف ترغب في تكوين CloudGraph.
<p align="center">
<a href="https://github.com/cloudgraphdev/cli/raw/main/docs/images/init.gif">
<img alt="init" src="https://raw.githubusercontent.com/cloudgraphdev/cli/main/docs/images/init.gif" width="95%" style="display: block; margin: auto"/>
</a>
</p>
<br/>
---
<br/>```bash
cg launch
cg launch الخاص بنا.لاحظ أنه إذا كنت لا تريد استخدام هذا الأمر، على سبيل المثال، إذا كنت تريد تشغيل حاوية Dgraph في الوضع التفاعلي، يمكنك استخدام أمر docker أدناه.```bash docker run -it -p 8995:5080 -p 8996:6080 -p 8997:8080 -p 8998:9080 -p 8999:8000 --label cloudgraph-cli-dgraph-standalone -v ~/dgraph:/dgraph --name dgraph dgraph/standalone:v21.03.1
---
<br/>```bash
cg scan
cg scan، وعادة ما تكون ناتجة عن مشاكل في الصلاحيات. ومع ذلك، إذا واجهت أي أخطاء إشكالية أثناء تشغيل CloudGraph يمكنك إضافة CG_DEBUG=5 إلى بداية أمرك كما في: CG_DEBUG=5 cg scan. سيقوم هذا بطباعة السجلات التفصيلية مع مزيد من المعلومات وحفظ المخرجات في cg-debug.log. يُرجى مشاركة سجلاتك معنا إما عن طريق فتح مشكلة على GitHub أو إخبارنا في مساحة Slack الخاصة بنا.هذا كل شيء، أنت جاهز لبدء الاستعلام! سيتم فتح أداة الاستعلام التي اخترتها أثناء الأمر cg init في متصفحك المفضل لتشغيل الاستعلامات والتحويرات والمرئيات على كل بنيتك التحتية السحابية! لاحظ أنه إذا قمت بتثبيت أي حزم سياسات، مثل AWS CIS 1.2، فسيتم إضافة بيانات رؤية حزمة السياسات تلقائيًا إلى بياناتك السحابية!
لاحظ أنه يمكنك أيضًا استخدام أي أداة استعلام GraphQL ترغب بها من خلال توصيلها بـ http://localhost:8997/graphql.
لإيقاف مثيل Dgraph (إيقاف حاوية dgraph) قم بتشغيل:
```bash
cg teardown
<br />
بالإضافة إلى ذلك، إذا كنت ترغب في إزالة الحاوية بعد إيقافها، قم بتشغيل:
<br />```bash
cg teardown --delete-image
يخزّن CloudGraph عددًا من الإصدارات السابقة لبياناتك بقدر ما قمت بتكوينه في أمر cg init. لتحميل إصدار سابق من بياناتك والاستعلام عنه، قم ببساطة بتشغيل أمر cg load واختر الإصدار الذي ترغب في فحصه كما يلي:
يمكنك العثور على قائمة الخدمات المدعومة حالياً لكل مزود في مستودعات المزود التالية:
رابط التوثيق الكامل: https://docs.cloudgraph.dev/overview.
لاستخدام CloudGraph، ستحتاج إلى أن تكون على دراية بـ GraphQL. يحتوي هذا القسم على مجموعة من الاستعلامات النموذجية لمساعدتك على البدء، لكنها ليست شاملة بأي حال من الأحوال. إذا كان بإمكانك تخيله، يمكنك الاستعلام عنه! لاحظ أنه يمكنك العثور على مئات الاستعلامات النموذجية الإضافية في التوثيق.
ملاحظة: سيركز هذا القسم على AWS، لكن نفس الأفكار تنطبق على مزودين آخرين مثل Azure وGCP
لشرح كيفية عمل CloudGraph، ضع في اعتبارك الاستعلام التالي الذي يمكنك تشغيله للحصول على ID وARN لمثيل EC2 واحد. لاحظ أنه لأغراض هذه الأمثلة، سنطلب فقط IDs وARNs لموارد AWS للحفاظ على الإيجاز، لكن يمكنك الاستعلام عن أي سمات تريدها:
```graphql
query {
getawsEc2(
arn: "arn:aws:ec2:us-east-1:123445678997:instance/i-12345567889012234"
) {
id
arn
}
}
<br />
سيعيد هذا الاستعلام حمولة `JSON` تبدو بهذا الشكل. جميع الأمثلة التالية ستتبع نفس النمط:
<br />```json
{
"data": {
"getawsEc2": {
"id": "i-12345567889012234",
"arn": "arn:aws:ec2:us-east-1:123445678997:instance/i-12345567889012234"
}
},
"extensions": {
"touched_uids": 4
}
}
احصل على ID و ARN لكل EC2 في جميع حسابات AWS التي قمت بمسحها:```graphql
query {
queryawsEc2 {
id
arn
}
}
<br />
احصل على `ID` و `ARN` لجميع مثيلات `EC2` في **واحد** من حسابات AWS الخاصة بك عن طريق تصفية accountId:```graphql
query {
queryawsEc2(filter: { accountId: { eq: "123456" } }) {
id
arn
}
}
احصل على ID و ARN لكل EC2 في \"us-east-1\" باستخدام regex للبحث في ARN:```graphql
query {
queryawsEc2(filter: { arn: { regexp: "/.us-east-1./" } }) {
id
arn
}
}
<br />
افعل الشيء نفسه ولكن مع التحقق من أن `region` يساوي `"us-east-1"` بدلاً من استخدام regex:```graphql
query {
queryawsEc2(filter: { region: { eq: "us-east-1" } }) {
id
arn
}
}
قم بنفس الشيء ولكن تحقق من أن region يحتوي على "us-east-1" في الاسم بدلاً من استخدام eq:```graphql
query {
queryawsEc2(filter: { region: { in: "us-east-1" } }) {
id
arn
}
}
<br />
احصل على `ID` و `ARN` لكل `EC2 instance` من سلسلة `M5` في `"us-east-1"````graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
) {
id
arn
}
}
قم بنفس الشيء ولكن تخطى النتيجة الأولى التي تم العثور عليها (أي offset: 1) ثم قم بإرجاع أول نتيجتين فقط بعد ذلك (أي first: 2) ورتب تلك النتائج حسب منطقة التوفر (AZ) بترتيب تصاعدي (order: { asc: availabilityZone }) بحيث يتم إرجاع المثيلات في "us-east-1a" في أعلى القائمة.```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
}
}
<br />
افعل الشيء نفسه ولكن قم بتضمين `EBS Volume` الذي هو قرص الإقلاع لكل `EC2 instance`:```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
ebs(filter: { isBootDisk: true }, first: 1) {
id
arn
isBootDisk
}
}
}
افعل نفس الشيء، ولكن أيضًا قم بتضمين SGs و ALBs لكل EC2. بالنسبة لـ ALBs، احصل على EC2s المتصلة بها بالإضافة إلى ID و ARN لكل EC2 instance موجودة (أي استعلام دائري).```graphql
query {
queryawsEc2(
filter: { region: { eq: "us-east-1" }, instanceType: { regexp: "/^m5a*/" } }
order: { asc: availabilityZone }
first: 2
offset: 1
) {
id
arn
ebs(filter: { isBootDisk: true }, first: 1) {
id
arn
isBootDisk
}
securityGroups {
id
arn
}
alb {
id
arn
ec2Instance {
id
arn
}
}
}
}
<br />
احصل على كل `VPC`، و`ALBs` و`Lambdas` في ذلك `VPC`، ثم مجموعة من البيانات الفرعية المتداخلة أيضًا. احصل أيضًا على كل `S3 Bucket` في `us-east-1`. واحصل أيضًا على قائمة `SQS` بـ `ARN` بقيمة `arn:aws:sqs:us-east-1:8499274828484:autocloud.fifo` وتحقق من `approximateNumberOfMessages`. الفكرة واضحة، CloudGraph **قوي للغاية**.```graphql
query {
queryawsVpc {
id
arn
alb {
id
arn
ec2Instance {
id
arn
ebs(filter: { isBootDisk: true }) {
id
arn
}
}
}
lambda {
id
arn
kms {
id
arn
}
}
}
queryawsS3(filter: { region: { eq: "us-east-1" } }) {
id
arn
}
getawsSqs(arn: "arn:aws:sqs:us-east-1:8499274828484:autocloud.fifo") {
approximateNumberOfMessages
}
}
تضمن حزم سياسات CloudGraph الامتثال عبر البنية التحتية الحالية لمزود سحابي معين. تستند الحزم إلى مجموعات من القواعد/المعايير التي توفرها مؤسسات أمنية مثل مركز أمان الإنترنت بهدف الحفاظ على بنيتك التحتية محدثة وفقًا لمعايير الأمان الصناعية. بمجرد إضافة حزمة سياسات باستخدام الأمر cg policy add (أي cg policy add aws-cis-1.2.0)، في كل مرة تقوم فيها بتشغيل فحص، سينفذ CloudGraph تلقائيًا السياسات التي قمت بتكوينها. سيتم تخزين هذه النتائج في Dgraph وربطها بمواردك الحالية، مما يسهل الاستعلام عن نتائج الامتثال إلى جانب مواردك.
لمزيد من المعلومات حول حزم السياسات المتاحة حاليًا، يرجى زيارة مستودع حزم السياسات
استخدم حزمة سياسات CloudGraph الخاصة بـ AWS CIS 1.2 للاستعلام عن جميع نتائج CIS لجميع حسابات AWS الخاصة بك:```graphql query { queryawsCISFindings { id resourceId result rule { id description severity } } }
<br />
إذا كنت ترغب في الاستعلام عن عدة نتائج امتثال مختلفة لمزود معين مثل AWS في وقت واحد، يمكنك طلبها بهذه الطريقة:```graphql
query {
queryawsFindings {
CISFindings {
id
resourceId
result
rule {
id
description
severity
}
}
AutoCloudFindings {
id
resourceId
result
rule {
id
description
severity
}
}
}
}
لكل قاعدة من قواعد CIS، احصل على الموارد المرتبطة بها، في هذه الحالة نستعلم عن بيانات مستخدم IAM لمعرفة أي منها ينجح وأي منها يفشل:```graphql query { queryawsCISFindings { id resourceId result rule { id description severity } iamUser { id arn name } } }
<br />
إذا كنت ترغب في فهم قواعد CIS التي تنطبق على مستخدم IAM معين، يمكنك استخدام الاستعلام التالي:```graphql
query {
getawsIamUser(id: "123456789") {
name
CISFindings {
id
resourceId
result
rule {
id
description
severity
}
}
}
}
حتى إذا لم تكن لديك أي حزم سياسات مثبتة، يمكنك مع ذلك كتابة استعلامات أمان قوية مثل هذا للعثور على جميع EBS Volumes غير المشفرة:```graphql
query {
queryawsEbs(filter: { encrypted: false }) {
id
arn
availabilityZone
encrypted
}
}
<br />
اعثر على جميع `S3 Buckets` العامة:```graphql
query {
queryawsS3(filter: { access: { eq: "Public" } }) {
id
arn
access
}
}
ابحث عن جميع S3 Buckets التي هي نفسها عامة أو يمكن أن تحتوي على Objects عامة فيها:```graphql
query {
queryawsS3(filter: { not: { access: { eq: "Private" } } }) {
id
arn
access
}
}
<br />
ابحث عن جميع مفاتيح `KMS` في `"us-east-1"`:```graphql
query {
queryawsKms(filter: { arn: { regexp: "/.*us-east-1.*/" } }) {
id
arn
description
keyRotationEnabled
tags {
key
value
}
}
}
ابحث عن جميع مثيلات السلسلة T القابلة للانفجار:```graphql
query {
queryawsEc2(filter: { instanceType: { regexp: "/^t.*/" } }) {
id
arn
availabilityZone
instanceType
}
}
<br />
ابحث عن `VPCs` الافتراضية:```graphql
query {
queryawsVpc(filter: { defaultVpc: true }) {
id
arn
defaultVpc
state
}
}
ابحث عن ALBs العامة:```graphql
query {
queryawsAlb(filter: { scheme: { eq: "internet-facing" } }) {
id
arn
dnsName
createdAt
tags {
key
value
}
}
}
<br />
ابحث عن جميع `EC2s` و `Lambdas` و `VPCs` التي تحتوي على قيمة `Tag` تساوي `"Production"`:```graphql
query {
queryawsTag(filter: { value: { eq: "Production" } }) {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
افعل نفس الشيء ولكن ابحث عن كل من key و value:```graphql
query {
queryawsTag(
filter: { key: { eq: "Environment" }, value: { eq: "Production" } }
) {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
<br />
قم بنفس العمل باستخدام `getawsTag` بدلاً من `queryawsTag`. لاحظ أنه عند البحث عن العلامات باستخدام `getawsTag` يجب عليك تحديد **كلٍّ من** `key` و `value` كـ `id` كما هو موضح أدناه مع `"Environment:Production"`:```graphql
query {
getawsTag(id: "Environment:Production") {
key
value
ec2Instance {
id
arn
}
lambda {
id
arn
}
vpc {
id
arn
}
}
}
لاحظ أن بيانات الفوترة متاحة حاليًا فقط لـ AWS. لكي تتمكن من استيعاب البيانات المتعلقة بـ FinOps بنجاح، يجب أن يكون لديك واجهة برمجة تطبيقات Cost Explorer API ممكّنة في حساب AWS الخاص بك. يمكنك الاطلاع على كيفية القيام بذلك هنا
احصل على total cost لحساب AWS الخاص بك لـ last 30 days، و total cost لحساب AWS الخاص بك month to date، وتفصيل each service and its cost for the last 30 days، وتفصيل each service and its cost month to date بالإضافة إلى متوسط التكاليف monthly و month to date:```graphql
query {
queryawsBilling {
totalCostLast30Days {
cost
currency
formattedCost
}
totalCostMonthToDate {
cost
currency
formattedCost
}
monthToDate {
name
cost
currency
formattedCost
}
last30Days {
name
cost
currency
formattedCost
}
monthToDateDailyAverage {
name
cost
currency
formattedCost
}
last30DaysDailyAverage {
name
cost
currency
formattedCost
}
}
}
<br />
سيقوم هذا الاستعلام بإرجاع حمولة `JSON` تبدو هكذا:```json
{
"data": {
"queryawsBilling": [
{
"totalCostLast30Days": {
"cost": 7088.87,
"currency": "USD",
"formattedCost": "$7088.87"
},
"totalCostMonthToDate": {
"cost": 7089.28,
"currency": "USD",
"formattedCost": "$7089.28"
},
"monthToDate": [
{
"name": "Amazon Relational Database Service",
"cost": 548.68,
"currency": "USD",
"formattedCost": "$548.68"
},
{
"name": "Amazon Managed Streaming for Apache Kafka",
"cost": 67.49,
"currency": "USD",
"formattedCost": "$67.49"
},
{
"name": "Amazon OpenSearch Service",
"cost": 1155.04,
"currency": "USD",
"formattedCost": "$1155.04"
}
...More Services
],
"last30Days": [
{
"name": "AWS Step Functions",
"cost": 330.20,
"currency": "USD",
"formattedCost": "$330.20"
},
{
"name": "Amazon Elastic Container Service for Kubernetes",
"cost": 194.40,
"currency": "USD",
"formattedCost": "$194.40"
},
{
"name": "AmazonCloudWatch",
"cost": 310.54,
"currency": "USD",
"formattedCost": "$310.54"
}
...More Services
],
"monthToDateDailyAverage": [
{
"name": "Amazon Relational Database Service",
"cost": 54.86,
"currency": "USD",
"formattedCost": "$54.86"
},
{
"name": "Amazon Managed Streaming for Apache Kafka",
"cost": 6.74,
"currency": "USD",
"formattedCost": "$6.74"
},
{
"name": "Amazon OpenSearch Service",
"cost": 115.50,
"currency": "USD",
"formattedCost": "$115.50"
}
...More Services
],
"last30DaysDailyAverage": [
{
"name": "AWS Step Functions",
"cost": 33.01,
"currency": "USD",
"formattedCost": "$33.01"
},
{
"name": "Amazon Elastic Container Service for Kubernetes",
"cost": 19.44,
"currency": "USD",
"formattedCost": "$19.44"
},
{
"name": "AmazonCloudWatch",
"cost": 31.05,
"currency": "USD",
"formattedCost": "$31.05"
}
...More Services
],
}
]
},
"extensions": {
"touched_uids": 212
}
}
احصل على كل EC2 instance في حساب AWS الخاص بك مع تكلفته اليومية:```graphql
query {
queryawsEc2 {
arn
dailyCost {
cost
currency
formattedCost
}
}
}
<br />
هذا الاستعلام سيعيد حمولة `JSON` تبدو هكذا. جميع الأمثلة التالية ستتبع نفس النهج:```json
{
{
"data": {
"queryawsEc2": [
{
"arn": "arn:aws:ec2:us-east-1:12345678910:instance/i-0c8b3vhfgf8df923f",
"dailyCost": {
"cost": 2.06,
"currency": "USD",
"formattedCost": "$2.06"
}
},
{
"arn": "arn:aws:ec2:us-east-1:12345678910:instance/i-060b3dsfds7sdf62e3",
"dailyCost": {
"cost": 2.06,
"currency": "USD",
"formattedCost": "$2.06"
}
},
...More EC2 Instances
]
},
"extensions": {
"touched_uids": 28
}
}
احصل على كل NAT Gateway في حساب AWS الخاص بك مع تكلفته اليومية:```graphql
query {
queryawsNatGateway {
arn
dailyCost {
cost
currency
formattedCost
}
}
}
<br />
## مثال AWS CloudWatch:
CloudGraph يقوم بتجميع بيانات CloudWatch Metric وتخزينها مع خدمات AWS محددة. هذه الميزة حاليًا في مرحلة بيتا وستعمل فقط مع EC2:```graphql
query {
queryawsEc2 {
arn
cloudWatchMetricData {
lastWeek {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
lastMonth {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
last6Hours {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
last24Hours {
cpuUtilizationAverage
networkInAverage
networkOutAverage
networkPacketsInAverage
networkPacketsOutAverage
statusCheckFailedSum
statusCheckFailedInstanceSum
statusCheckFailedSystemSum
diskReadOpsAverage
diskWriteOpsAverage
diskReadBytesAverage
diskWriteBytesAverage
}
}
}
}
عندما تفكر "من منظور الرسم البياني"، يمكنك فعل أي شيء تقريبًا باستخدام CloudGraph. على سبيل المثال، إذا أردت معرفة دوال Lambda التي لا تنتمي إلى VPC (أي أنها لا تستخدم شبكات VPC). نظرًا لأن CloudGraph يربط جميع الموارد التي لها علاقات، مثل اتصال VPC الأصلي بدوال Lambda التابعة له، يمكنك الإجابة على هذا السؤال بسهولة. فقط تحقق من دوال Lambda التي يتصل بها VPC، وقارنها بقائمة جميع دوال Lambda كالتالي:```graphql query { queryawsVpc { id arn lambda { id arn } } queryawsLambda { id arn } }
<br />
## القيود
<br />
اليوم، أكبر قيد في CloudGraph وقدراتنا الاستعلامية هو أننا لا ندعم التصفية المتداخلة بناءً على السمات الفرعية. فمثلاً، بقدر ما سيكون رائعًا القيام بما يلي، إلا أنه غير ممكن بعد:
<br />```graphql
query {
# This won't work just yet...
queryawsEc2(filter: { ebs: { isBootDisk: true } }) {
id
arn
ebs {
id
arn
}
}
# So you have to do this instead :(
queryawsEc2 {
id
arn
ebs(filter: { isBootDisk: true }) {
id
arn
}
}
}
هذا في الواقع ليس قيدًا في CloudGraph، بل ميزة لا يزال يتعين تنفيذها في Dgraph. يمكنك مشاهدة والتعليق على سلسلة النقاش هنا
يأتي CloudGraph مزودًا بأداتين رائعتين للاستعلام ومستكشف لمخطط GraphQL. تذكر، يمكنك استخدام أي أداة استعلام GraphQL إذا كنت تفضل خيارًا آخر، فقط قم بتوصيلها بنقطة النهاية /graphql المكشوفة لديك!
يتميز GraphQL Playground بواجهة مستخدم سلسة وجذابة رائعة للاستعلام عن مخطط GraphQL بسرعة وبساطة. يحتوي على توثيق مدمج يتم إنشاؤه تلقائيًا وإكمال تلقائي أثناء الكتابة. للوصول إلى Playground، إما أن تحدده كأداة الاستعلام المفضلة لديك في أمر init أو قم بزيارة /playground في الخادم الذي يشتغله CG.
Altair هي أداة استعلام GraphQL رائعة أخرى تحتوي على الكثير من الميزات للمستخدمين المتقدمين. يمكنك القيام بأشياء مثل الإكمال التلقائي للاستعلامات، وإضافة الأجزاء (fragments) ديناميكيًا، وتصدير/استيراد مجموعات من الاستعلامات. للوصول إلى Altair، إما أن تحدده كأداة الاستعلام المفضلة لديك في أمر init أو قم بزيارة /altair في الخادم الذي يشتغله CG.
GraphQL Voyager هي طريقة رائعة لاستكشاف المخططات (schemas) لمزودي CG. يمنحك رسمًا بيانيًا ثنائي الاتجاه رائعًا يحتوي على جميع أنواعك واستعلاماتك. يمكنك النقر على الكيانات أو الأسهم لاكتشاف الاتصالات، والبحث عن شيء محدد، والحصول على فهم أعمق لمخططك. للوصول إلى Voyager، قم بزيارة /voyager في الخادم الذي يشتغله CG.
تعليقات أو أسئلة أو ملاحظات؟ يرجى الانضمام إلى مساحة عمل Slack الخاصة بنا يسعدنا سماع رأيك.
إذا كنت مهتمًا بالمساهمة في CloudGraph، فيرجى مراجعة إرشادات المساهمة.
يمكنك إما تشغيل CloudGraph محليًا، أو نشره على مزود السحابة الذي تختاره. قوالب Terraform وأدلة النشر السحابي قادمة قريبًا!
هل أنت مهتم بإصدار مُدار بالكامل (SaaS) أو مستضاف ذاتيًا من CloudGraph مع قدرات تصور ثلاثية الأبعاد مدمجة، ومسح تلقائي، ومئات الفحوصات الإضافية للامتثال؟ تحقق من AutoCloud لمزيد من التفاصيل.
إذا واجهت أي أخطاء أثناء تشغيل CloudGraph، يمكنك إضافة CG_DEBUG=5 في بداية أمرك مثل: CG_DEBUG=5 cg scan. سيؤدي ذلك إلى طباعة السجلات المفصلة مع مزيد من المعلومات التي يمكنك استخدامها إما لفتح مشكلة على GitHub أو إعلامنا في مساحة عمل Slack.
هناك بعض الأخطاء الشائعة التي قد تراها عند تشغيل CloudGraph والتي ترتبط عادةً بمشاكل الأذونات أو الاتصال.
⚠️ تعذر إجراء بعض الاتصالات - يظهر هذا التحذير في تقرير المسح عندما يحاول CG إجراء اتصال بين مصدرين ولا يتمكن من ذلك. إذا رأيت هذا باستخدام أحد المزودين المدعومين رسميًا من CG، فيرجى إنشاء مشكلة جديدة حتى نتمكن من حلها. السبب الأكثر شيوعًا لهذا الخطأ هو خلل في منطق اتصال الموارد الخاص بالمزود الأساسي.
🚫 تعذر تخزين البيانات في Dgraph - يظهر هذا الخطأ في تقرير المسح عندما يحاول CG إدراج بعض بيانات مزود السحابة في قاعدة بيانات الرسم البياني ويفشل. لن تتمكن أي خدمات بها هذا الخطأ من الاستعلام عنها في أداة استعلام GraphQL. يحدث هذا عادةً عندما لا يتمكن CG من الحصول على البيانات المطلوبة (مثل arn) لمورد ما بسبب خطأ عند استدعاء SDK الخاص بالمزود، غالبًا بسبب نقص التفويض.
يتطلب المزود {name}@${version} إصدار CLI {version} ولكن إصدار CLI هو ${version} - يعني هذا التحذير أن لديك إصدارات غير متوافقة من CG والمزود الذي تحاول استخدامه. حاول تحديث CG npm install -g @cloudgraphdev/cli ووحدة المزود cg provider update حتى يصبح كلاهما في أحدث إصدار. يمكنك أيضًا التحقق من ملف pacakge.json الخاص بالمزود لمعرفة إصدارات CG التي تدعمه.
فشل المدير في تثبيت البرنامج الإضافي لـ {provider} - يحدث هذا الخطأ عندما لا يتمكن مدير البرامج الإضافية لـ CG من العثور على وحدة المزود التي تريد استخدامها. يبحث المدير في سجل NPM العام عن وحدة المزود. بالنسبة للمزودين المدعومين رسميًا، فقط مرر اسم المزود CG init aws. بالنسبة للمزودين المدعومين من المجتمع، يجب عليك أيضًا تمرير مساحة الاسم CG init @{providerNamespace}/{provider}
cg help [COMMAND]cg init [PROVIDER]cg launch [PROVIDER]cg load [PROVIDER]cg policy [PROVIDER]cg policy add [PROVIDER]cg policy install [PROVIDER]cg policy list [PROVIDER]cg policy remove [PROVIDER]cg policy update [PROVIDER]cg provider [PROVIDER]cg help [COMMAND]عرض المساعدة لـ cg.``` USAGE $ cg help [COMMAND] [-n]
ARGUMENTS COMMAND Command to show help for.
FLAGS -n, --nested-commands Include all nested commands in the output.
DESCRIPTION Display help for cg.
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/src/commands/help.ts)_
## `cg init [PROVIDER]`
تعيين التهيئة الأولية للمزودين```
USAGE
$ cg init [PROVIDER] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p <value>]
[-q playground|altair] [-l <value>] [--use-roles] [-P <value>] [-r]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-r, --resources
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Set initial configuration for providers
EXAMPLES
$ cg init
$ cg init aws [Initialize AWS provider]
$ cg init aws -r [Specify resources to crawl]
انظر الكود: src/commands/init.ts
cg launch [PROVIDER]إطلاق مثيل من Dgraph لتخزين البيانات``` USAGE $ cg launch [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Launch an instance of Dgraph to store data
EXAMPLES $ cg launch
_اطّلع على الكود: [src/commands/launch.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/launch.ts)_
## `cg load [PROVIDER]`
قم بتحميل إصدار معين من بيانات CloudGraph الخاصة بك```
USAGE
$ cg load [PROVIDER] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p <value>]
[-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Load a specific version of your CloudGraph data
EXAMPLES
$ cg load [Load data for all providers configured]
$ cg load aws [Load data for AWS]
اطلع على الكود: src/commands/load.ts
cg policy [PROVIDER]أوامر لإدارة وحدات حزم السياسات، قم بتشغيل $ cg policy لمزيد من المعلومات.``` USAGE $ cg policy [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Commands to manage policy pack modules, run $ cg policy for more info.
_انظر الكود: [src/commands/policy/index.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/policy/index.ts)_
## `cg policy add [PROVIDER]`
إضافة حزم سياسة جديدة```
USAGE
$ cg policy add [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Add new policy packs
ALIASES
$ cg add policy
EXAMPLES
$ cg policy add aws-cis-1.2.0
$ cg policy add [email protected]
cg policy install [PROVIDER]تثبيت حزم السياسات استنادًا إلى ملف القفل``` USAGE $ cg policy install [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Install policy packs based on the lock file
ALIASES $ cg install policy
EXAMPLES $ cg policy install
## `cg policy list [PROVIDER]`
قائمة بحزم السياسات والإصدارات المثبتة حالياً```
USAGE
$ cg policy list [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
List currently installed policy packs and versions
ALIASES
$ cg ls policy
$ cg list policy
EXAMPLES
$ cg policy list
$ cg policy list aws
cg policy remove [PROVIDER]إزالة حزمة السياسات المثبتة حالياً``` USAGE $ cg policy remove [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Remove currently installed policy pack
ALIASES $ cg remove policy $ cg policy remove $ cg policy rm $ cg del policy $ cg rm policy
EXAMPLES $ cg policy remove
$ cg policy remove aws-cis-1.2.0
$ cg policy remove aws-cis-1.2.0 --no-save
## `cg policy update [PROVIDER]`
تحديث حزم السياسات المثبتة حاليًا```
USAGE
$ cg policy update [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Update currently installed policy packs
EXAMPLES
$ cg policy update
$ cg policy update aws-cis-1.2.0
$ cg policy update [email protected]
cg provider [PROVIDER]أوامر لإدارة وحدات provider، قم بتشغيل $ cg provider لمزيد من المعلومات.``` USAGE $ cg provider [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Commands to manage provider modules, run $ cg provider for more info.
_اطّلع على الكود: [src/commands/provider/index.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/provider/index.ts)_
## `cg provider add [PROVIDER]`
إضافة موفرين جدد```
USAGE
$ cg provider add [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Add new providers
ALIASES
$ cg add provider
EXAMPLES
$ cg provider add aws
$ cg provider add [email protected]
cg provider install [PROVIDER]تثبيت الموفرين بناءً على ملف القفل``` USAGE $ cg provider install [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Install providers based on the lock file
ALIASES $ cg install provider
EXAMPLES $ cg provider install
## `cg provider list [PROVIDER]`
قائمة المزودين والإصدارات المثبتة حالياً```
USAGE
$ cg provider list [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
List currently installed providers and versions
ALIASES
$ cg ls provider
$ cg list provider
EXAMPLES
$ cg provider list
$ cg provider list aws
cg provider remove [PROVIDER]إزالة المزود المثبت حالياً``` USAGE $ cg provider remove [PROVIDER] [--no-save] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-save Set to not alter lock file, just delete plugin --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Remove currently installed provider
ALIASES $ cg remove provider $ cg provider remove $ cg provider rm $ cg del provider $ cg rm provider
EXAMPLES $ cg provider remove
$ cg provider remove aws
$ cg provider remove aws --no-save
## `cg provider update [PROVIDER]`
تحديث المزوّدين المثبتين حالياً```
USAGE
$ cg provider update [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Update currently installed providers
EXAMPLES
$ cg provider update
$ cg provider update aws
$ cg provider update [email protected]
cg scan [PROVIDER]افحص بيانات موفر واحد أو عدة موفرين ليتم الاستعلام عنها عبر Dgraph``` USAGE $ cg scan [PROVIDER] [--dev] [-d ] [-s dgraph] [--directory ] [--no-serve] [-p ] [-q playground|altair] [-l ] [--use-roles] [-P ]
FLAGS -P, --policies= Policy Packs to execute during scan -d, --dgraph= Set where dgraph is running (default localhost:8997) -l, --version-limit= Limit the amount of version folders stored on the filesystem (default 10) -p, --port= Set port to serve query engine -q, --query-engine= Query engine to launch <options: playground|altair> -s, --storage= Select a storage engine to use. Currently only supports Dgraph <options: dgraph> --dev Turn on developer mode --directory= Set the folder where CloudGraph will store data. (default cg) --no-serve Set to not serve a query engine --use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION Scan one or multiple providers data to be queried through Dgraph
EXAMPLES $ cg scan
$ cg scan aws
$ cg scan aws --dgraph http://localhost:1000 [Save data in dgraph running on port 1000]
$ cg scan aws --no-serve [Do not start the query engine]
_اطّلع على الكود: [src/commands/scan.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/scan.ts)_
## `cg serve [PROVIDER]`
خدم أداة استعلام GraphQL للاستعلام عن بيانات CloudGraph الخاصة بك.```
USAGE
$ cg serve [PROVIDER] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p <value>]
[-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Serve a GraphQL query tool to query your CloudGraph data.
EXAMPLES
$ cg serve
See code: src/commands/serve.ts
cg teardown [PROVIDER]يوقف حاوية Docker الخاصة بـ Dgraph.``` USAGE $ cg teardown [PROVIDER] [--delete-image]
FLAGS --delete-image Remove dgraph docker image after stopping it
DESCRIPTION Stops the Dgraph Docker container.
EXAMPLES $ cg teardown
$ cg teardown --delete-image
_اطلع على الكود: [src/commands/teardown.ts](https://github.com/cloudgraphdev/cli/blob/v0.25.1/src/commands/teardown.ts)_
## `cg update [PROVIDER]`
ترقية الإضافات المثبتة حالياً.```
USAGE
$ cg update [PROVIDER] [--no-save] [--dev] [-d <value>] [-s dgraph] [--directory <value>] [--no-serve] [-p
<value>] [-q playground|altair] [-l <value>] [--use-roles] [-P <value>]
FLAGS
-P, --policies=<value> Policy Packs to execute during scan
-d, --dgraph=<value> Set where dgraph is running (default localhost:8997)
-l, --version-limit=<value> Limit the amount of version folders stored on the filesystem (default 10)
-p, --port=<value> Set port to serve query engine
-q, --query-engine=<option> Query engine to launch
<options: playground|altair>
-s, --storage=<option> Select a storage engine to use. Currently only supports Dgraph
<options: dgraph>
--dev Turn on developer mode
--directory=<value> Set the folder where CloudGraph will store data. (default cg)
--no-save Set to not alter lock file, just delete plugin
--no-serve Set to not serve a query engine
--use-roles Set to true to use roleARNs instead of profiles for AWS credentials
DESCRIPTION
Upgrade currently installed plugins.
ALIASES
$ cg update
EXAMPLES
$ cg update
انظر الكود: src/commands/update.ts