summus - ΠΎΡ Π»Π°Ρ. Π²ΡΡΠΎΡΠ°ΠΉΠ½ΠΈΠΉ, Π²Π΅ΡΡ ΠΎΠ²Π½ΡΠΉ
Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ SberCloud. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ, Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌΠΈ, ΡΠ΅ΡΡΠΌΠΈ, ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ SberCloud.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
TOKEN
- ΡΠΎΠΊΠ΅Π½ Telegram Π±ΠΎΡΠ°
docker-compose up
pip3 install -r requirements.txt
python3 -m src
- Elastic Cloud Server
- Enterprise Management
- NAT Gateway
- Virtual Private Cloud
- Subnet
- Image Management Service
- Cloud Eye
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ:
-
- ECS
-
- EPS
-
- NAT
-
- VPC
-
- IMS
-
- Subnet
-
- CEM
- ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΡΠΎΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΠΎΡΠ°
- ΠΠΎΠΊΡΡΡΡ Π±ΠΎΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
SberCloud - Π‘Π΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
- Π‘Π΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ user-friendly ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠΏΡΠΈΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅ΡΡΡΡΠ° ΠΈΠ· ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ)
- ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΡΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ².
- ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ ΡΠ΅ΡΡΡΠΎΠ².
- ΠΡΠ³ΡΡΠ·ΠΊΠ° ΠΎΡΡΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΡΠ°ΡΠΎΡΠΌ-ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
- ΠΡΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠ΅ΡΡΡΡΠ°.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ SDK.
- ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π³ΡΠ°ΠΌΠΎΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Ρ Π±ΠΎΡΠ° ΠΏΡΠ°Π².
- ΠΠ΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
- ΠΠΎΠ΄ ΠΏΠΎΠΊΡΡΡ ΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΊ SDK ΡΠ΅ΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ aiogram
. Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ (Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Endpoint ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ SDK HuaweiCloud (SDK HuaweiCloud ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ SberCloud). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π² SDK, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ SDK ΠΈ Π² ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»ΡΡ
, Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ (ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ HuaweiCloud)
Π€Π°ΠΉΠ»: src/modules/<MODULE_SHORT_NAME_LOWERCASE>.py
from enum import Enum
from aiogram import F, Router, types
from aiogram.types.callback_query import CallbackQuery
from aiogram.utils.keyboard import InlineKeyboardBuilder, InlineKeyboardMarkup
from aiogram.filters.callback_data import CallbackData
from aiogram.filters.state import StatesGroup, State
from aiogram.fsm.context import FSMContext
from src.module import Module
from src.utils import add_exit_button
# ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
<MODULE_SHORT_NAME> = Module(
name='<MODULE_PRETTY_NAME>',
router=Router(name='<MODULE_SHORT_NAME>')
)
# Π‘ΠΏΠΈΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ
class Action(str, Enum):
CREATE = 'create'
LIST = 'list'
SHOW = 'show'
<CUSTOM_ACTION> = '<CUSTOM_PRETTY_ACTION>'
class <MODULE_SHORT_NAME>Callback(CallbackData, prefix='<MODULE_SHORT_NAME>'):
action: Action
def keyboard() -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
for action in Action:
builder.button(
text=action.value.title(),
callback_data=<MODULE_SHORT_NAME>Callback(action=action.value),
)
add_exit_button(builder)
builder.adjust(2)
return builder.as_markup()
# ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
@<MODULE_SHORT_NAME>.router.callback_query(<MODULE_SHORT_NAME>Callback.filter(F.action == Action.<CUSTOM_ACTION>))
async def CUSTOM_ACTION(call: CallbackQuery, state: FSMContext):
await call.message.answer('Hello, world!')
await call.answer()
Π€Π°ΠΉΠ»: src/modules/__init__.py
from .vpc import VPC
from .eps import EPS
from .subnet import SUBNET
from .nat import NAT
from .ecs import ECS
from .<MODULE_SHORT_NAME_LOWERCASE> import <MODULE_SHORT_NAME>
modules = (EPS, VPC, SUBNET, NAT, ECS, <MODULE_SHORT_NAME>)
ΠΡΠΎΠ³:
ΠΡΠΈΠΌΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ SDK ΡΠΌ. Π² src/modules
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytest
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
TOKEN
- ΡΠΎΠΊΠ΅Π½ Telegram Π±ΠΎΡΠ°AK
- Access Key IdSK
- Secret Access KeyPROJECT_ID
ACCOUNT_ID
pytest src/test.py
ΠΡΠΎΠ΅ΠΊΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ GNU GPLv3.