โครงการนี้เป็น SDK สำหรับ Cloudiq API ของ Crayon ที่สามารถใช้ในสคริปต์และแอปพลิเคชัน Python จัดเตรียมอินเทอร์เฟซอย่างง่ายเพื่อตรวจสอบสิทธิ์ด้วย API โดยใช้ OAuth2 มันสามารถใช้ในการสร้างผู้เช่าสร้างการสมัครสมาชิกใบอนุญาตและตรวจสอบการเรียกเก็บเงิน สิ่งใดก็ตามที่สามารถทำได้ในพอร์ทัลคลาวด์-IQ สามารถทำได้โดยอัตโนมัติโดยใช้แพ็คเกจนี้
รวมหลายวิธีการกำหนดค่าข้อมูลล่วงหน้าและวิธีการ API บล็อกข้อมูลที่กำหนดเองสามารถโพสต์ไปยัง API เป็นพจนานุกรม Python วิธีการพักผ่อน: รับโพสต์แพทช์ใส่และลบสามารถเรียกได้ด้วยจุดสิ้นสุด API และพจนานุกรมข้อมูลเป็นอาร์กิวเมนต์
pip install crayon-cloudiq-sdk
วิธีสร้างข้อมูลรับรองไคลเอนต์ Cloud-IQ API
สร้างสคริปต์ Python ใหม่
นำเข้าคลาส Cloudiq
from cloudiq import CloudIQ
เริ่มต้นอินสแตนซ์ของคลาส CloudIQ ด้วยข้อมูลรับรองผู้ใช้ที่ถูกต้อง:
from cloudiq import CloudIQ
CLIENT_ID = xxxxxxx-xxxx-xxxx-xxxx-xxxxxx
CLIENT_SECRET = xxxxxxx-xxxx-xxxx-xxxx-xxxxxx
USERNAME = "[email protected]"
PASSWORD = "Password123456"
crayon_api = CloudIQ(CLIENT_ID,CLIENT_SECRET,USERNAME,PASSWORD)
วิธีการนำเข้าข้อมูลรับรองที่ต้องการคือผ่านตัวแปร Env
from os import getenv
from cloudiq import CloudIQ
CLIENT_ID = getenv('CLIENT_ID')
CLIENT_SECRET = getenv('CLIENT_SECRET')
USERNAME = getenv('CLOUDIQ_USER')
PASSWORD = getenv('CLOUDIQ_PW')
crayon_api = CloudIQ(CLIENT_ID,CLIENT_SECRET,USERNAME,PASSWORD)
ตัวแปร Env สามารถตั้งค่าได้โดยใช้วิธีการต่าง ๆ รวมถึงการฉีดหากใช้ภาชนะบรรจุและท่อหรือผ่านตัวจัดการความลับเช่น Azure KeyVault ในการตั้งค่าไว้ในระบบท้องถิ่นโดยใช้คำสั่ง bash เรียกใช้คำสั่งต่อไปนี้:
export CLIENT_ID="xxxxxxx-xxxx-xxxx-xxxx-xxxxxx"
export CLIENT_SECRET="xxxxxxx-xxxx-xxxx-xxxx-xxxxxx"
export USERNAME="[email protected]"
export PASSWORD="Password123456"
วิธีทางเลือกคือการใช้ไฟล์ config.ini ที่มีข้อมูลรับรองและดึงข้อมูลโดยใช้โมดูล configparser
import configparser
from cloudiq import CloudIQ
# Parse configuration file
try:
config = configparser.ConfigParser()
config.read('config.ini')
ID = config['CRAYON_API']['ID']
SECRET = config['CRAYON_API']['SECRET']
USER = config['CRAYON_API']['USER']
PASS = config['CRAYON_API']['PASS']
except configparser.Error:
print("Configuration Error...config.ini not found")
exit()
except KeyError:
print("Configuration Error...configuration not found in config.ini")
exit()
crayon_api = CloudIQ(CLIENT_ID,CLIENT_SECRET,USERNAME,PASSWORD)
ดูตัวอย่างโฟลเดอร์สำหรับการสาธิตการรับรองความถูกต้องโดยใช้ configparser ตัวแปร Env และ Azure DevOps Pipelines
ข้อมูลที่ส่งคืนโดย API จะถูกบันทึกลงในวัตถุการตอบสนอง (ยกเว้นสำหรับ getToken และ validateToken) วัตถุตอบสนองมีค่าเช่น status_code, ส่วนหัว, คุกกี้และข้อความที่ส่งคืนโดยการเรียก API
เพื่อส่งคืนข้อมูล JSON จากวิธีการตอบสนองการตอบสนองการตอบสนอง JSON () เมธอด
ในการส่งคืนรหัสสถานะให้ใช้ตัวแปร response.status_code
การโทร API ที่ประสบความสำเร็จทั้งหมดส่งคืน 200 OK , 201 ที่สร้างขึ้น หรือ 204 ไม่มีเนื้อหา
การตอบกลับข้อผิดพลาดส่วนใหญ่ยังให้ข้อความแสดงข้อผิดพลาดโดยละเอียดในรูปแบบ JSON
หากคุณได้รับข้อผิดพลาด 500 ข้อผิดพลาดข้อมูลสคีมามีแนวโน้มมากที่สุด อาจมีการจัดรูปแบบไม่ถูกต้องหรือขาดหายไปในฟิลด์ที่จำเป็น
อย่าลืมจัดการสถานะข้อผิดพลาดเมื่อเขียนอัตโนมัติ
response = crayon_api.me()
if(int(response.status_code) == 200):
# Handle JSON data
print(response.json())
else:
# Handle Error
print(response.status_code)
exit(1)
สำหรับคำอธิบายทั้งหมดของฟิลด์ภายในวัตถุตอบกลับโปรดตรวจสอบข้อมูลในลิงค์ต่อไปนี้:
คำขออย่างเป็นทางการการตอบสนองคลาสเอกสาร: https://docs.python-requests.org/en/latest/api/#requests.response
โรงเรียน W3: https://www.w3schools.com/python/ref_requests_response.asp
ทำการทดสอบ ping ที่ไม่ผ่านการตรวจสอบแล้ว
response = crayon_api.ping()
print(response,json())
รับข้อมูลเกี่ยวกับผู้ใช้ที่ได้รับการรับรองความถูกต้องในปัจจุบัน
response = crayon_api.me()
print(response.json())
ทำตามคำขอ Raw Get:
# retrieves all products in the Azure Active Directory product family within Org 123456
params = {
'OrganizationId': 123456,
'Include.ProductFamilyNames': 'Azure Active Directory'
}
# make a GET request to https://api.crayon.com/api/v1/AgreementProducts
response = crayon_api.get("https://api.crayon.com/api/v1/AgreementProducts",params)
print(response.json())
ข้อมูลสามารถส่งไปยัง API เป็นวัตถุพจนานุกรม Python มาตรฐาน
ดึงโทเค็นการอนุญาตที่ถูกต้อง:
response = crayon_api.getToken()
print(response)
สร้างผู้เช่าโดยใช้ Schema Customertenantedialed:
# Set Unique Tenant Variables
tenant_name = "tenant_name"
domain_prefix = "domain_prefix"
# Initialize Tenant and Agreement objects
tenant = crayon_api.CustomerTenantDetailed(
tenant_name=tenant_name,
domain_prefix=domain_prefix,
org_id=111111,
org_name="Fake Org",
invoice_profile_id=80408, # Default
contact_firstname="First",
contact_lastname="Last",
contact_email="[email protected]",
contact_phone="5555555555",
address_firstname="First",
address_lastname="Last",
address_address="75 NoWhere Lane",
address_city="Boston",
address_countrycode="US",
address_region="MA",
address_zipcode="02109"
)
agreement = crayon_api.CustomerTenantAgreement(
firstname="First",
lastname="Last",
phone_number="5555555555",
email="[email protected]"
)
#Create New Tenant
new_tenant = crayon_api.createTenant(tenant.tenant)
print(new_tenant.json())
# Agree to Microsoft Customer Agreement
tenant_id = new_tenant["Tenant"]["Id"]
agreement = crayon_api.createTenantAgreement(tenant_id,agreement.agreement)
print(agreement.json())
ซื้อใบอนุญาต Microsoft สำหรับผู้เช่าโดยใช้ SubscriptionDetailed Schema:
tenant_id=123456
# Create Subscription objects
azure_subscription = crayon_api.SubscriptionDetailed(
name="Azure P2 Subscription",
tenant_id=tenant_id,
part_number="CFQ7TTC0LFK5:0001",
quantity=1,
billing_cycle=1,
duration="P1M"
)
# Create Azure P2 Subscription
subscription = crayon_api.createSubscription(azure_subscription.subscription)
print(subscription.json)
from cloudiq import CloudIQ
help(CloudIQ)