需要自动化您的基础设施或使用 Yandex.Cloud 提供的服务?我们都能满足您。
安装:
pip install yandexcloud
有几种选项可用于授权您的请求——OAuth 令牌、元数据服务(如果您在 Yandex.Cloud 中运行的虚拟机或 Cloud Functions 中执行代码)、服务帐号密钥以及外部创建的 IAM 令牌。
sdk = yandexcloud.SDK(token='AQAD-.....')别忘了为您的实例或函数分配服务帐号并授予必要的角色。
sdk = yandexcloud.SDK()# 您可以将其存储在 JSON 文件中并从中读取
sa_key = {
"id": "...",
"service_account_id": "...",
"private_key": "..."
}
sdk = yandexcloud.SDK(service_account_key=sa_key)sdk = yandexcloud.SDK(iam_token="t1.9eu...")有关更多示例,请查看 examples 目录。
| 服务名称 | 别名 |
|---|---|
| yandex.cloud.ai.foundation_models | ai-foundation-models |
| yandex.cloud.ai.llm | ai-llm |
| yandex.cloud.ai.ocr | ai-vision-ocr |
| yandex.cloud.ai.stt | ai-stt |
| yandex.cloud.ai.translate | ai-translate |
| yandex.cloud.ai.tts | ai-speechkit |
| yandex.cloud.ai.vision | ai-vision |
| yandex.cloud.apploadbalancer | alb |
| yandex.cloud.billing | billing |
| yandex.cloud.cdn | cdn |
| yandex.cloud.certificatemanager.v1.certificate_content_service | certificate-manager-data |
| yandex.cloud.certificatemanager | certificate-manager |
| yandex.cloud.compute | compute |
| yandex.cloud.containerregistry | container-registry |
| yandex.cloud.dataproc.manager | dataproc-manager |
| yandex.cloud.dataproc | dataproc |
| yandex.cloud.datasphere | datasphere |
| yandex.cloud.datatransfer | datatransfer |
| yandex.cloud.dns | dns |
| yandex.cloud.endpoint | endpoint |
| yandex.cloud.iam | iam |
| yandex.cloud.iot.devices | iot-devices |
| yandex.cloud.k8s | managed-kubernetes |
| yandex.cloud.kms.v1.symmetric_crypto_service | kms-crypto |
| yandex.cloud.kms | kms |
| yandex.cloud.loadbalancer | load-balancer |
| yandex.cloud.loadtesting | loadtesting |
| yandex.cloud.lockbox.v1.payload_service | lockbox-payload |
| yandex.cloud.lockbox | lockbox |
| yandex.cloud.logging.v1.log_ingestion_service | log-ingestion |
| yandex.cloud.logging.v1.log_reading_service | log-reading |
| yandex.cloud.logging | logging |
| yandex.cloud.marketplace | marketplace |
| yandex.cloud.mdb.clickhouse | managed-clickhouse |
| yandex.cloud.mdb.elasticsearch | managed-elasticsearch |
| yandex.cloud.mdb.greenplum | managed-greenplum |
| yandex.cloud.mdb.kafka | managed-kafka |
| yandex.cloud.mdb.mongodb | managed-mongodb |
| yandex.cloud.mdb.mysql | managed-mysql |
| yandex.cloud.mdb.opensearch | managed-opensearch |
| yandex.cloud.mdb.postgresql | managed-postgresql |
| yandex.cloud.mdb.redis | managed-redis |
| yandex.cloud.mdb.sqlserver | managed-sqlserver |
| yandex.cloud.operation | operation |
| yandex.cloud.organizationmanager | organization-manager |
| yandex.cloud.resourcemanager | resource-manager |
| yandex.cloud.serverless.apigateway.websocket | apigateway-connections |
| yandex.cloud.serverless.apigateway | serverless-apigateway |
| yandex.cloud.serverless.containers | serverless-containers |
| yandex.cloud.serverless.functions | serverless-functions |
| yandex.cloud.serverless.triggers | serverless-triggers |
| yandex.cloud.spark | managed-spark |
| yandex.cloud.storage | storage-api |
| yandex.cloud.trino | trino |
| yandex.cloud.vpc | vpc |
| yandex.cloud.ydb | ydb |
from yandex.cloud.vpc.v1.network_service_pb2_grpc import NetworkServiceStub
from yandexcloud import SDK
sdk = SDK(iam_token="t1.9eu...")
new_network_client_endpoint = "example.new.vpc.very.new.yandex:50051"
insecure = False # 默认是 False,但如果服务器不支持验证,则可以设置为 True
network_client = sdk.client(NetworkServiceStub, endpoint=new_network_client_endpoint, insecure=False)要覆盖终结点,请提供 {别名 : 新终结点} 格式的字典。
from yandex.cloud.vpc.v1.network_service_pb2_grpc import NetworkServiceStub
from yandexcloud import SDK
new_network_client_endpoint = "example.new.vpc.very.new.yandex:50051"
sdk = SDK(iam_token="t1.9eu...", endpoints={"vpc": new_network_client_endpoint})
insecure = False # 默认是 False,但如果服务器不支持验证,则可以设置为 True
network_client = sdk.client(NetworkServiceStub, insecure=False)注意:如果为同一个终结点使用了两种覆盖方式,则客户端覆盖具有最高优先级。
from yandexcloud import SDK, set_up_yc_api_endpoint
kz_region_endpoint = "api.yandexcloud.kz"
# 这将使 SDK 从 KZ yc 安装列出终结点
sdk = SDK(iam_token="t1.9eu...", endpoint="api.yandexcloud.kz")
# 或者您可以使用全局函数
set_up_yc_api_endpoint(kz_region_endpoint)SDK 提供内置的重试策略,支持 指数退避和抖动,以及 重试预算。这对于避免重试放大是必要的。
import grpc
from yandexcloud import SDK, RetryPolicy
sdk = SDK(retry_policy=RetryPolicy())SDK 为重试限制策略提供不同的模式:
persistent适用于您在任何长期运行的应用程序中使用 SDK,此时 SDK 实例将足够长久地用于管理预算;temporary适用于您在任何短期运行的应用程序中使用 SDK,例如脚本或 CI/CD。
默认情况下,SDK 将使用 temporary 模式,但您可以通过 throttling_mode 参数进行更改。
我们使用 uv 来管理依赖项并在 Makefile 中运行命令。
使用官方独立安装程序安装它:
curl -LsSf https://astral.sh/uv/install.sh | sh
使用 make deps 命令来安装库及其生产和开发依赖项。
uv add cryptography
添加到 dev 附加部分
uv add pre-commit --group dev
添加到 genproto 附加部分
uv add grpcio-tools --group genproto
使用 make git-hooks 命令设置 pre-commit 和 commit-msg 钩子。
使用 make format 使用 black 工具自动格式化代码。
make test运行当前 Python 版本的测试make lint仅运行当前 Python 版本的 lintermake tox-current运行当前 Python 版本的所有检查(测试 + 代码样式检查 + Linter + 格式检查)make tox运行所有支持的(在您的系统中安装)Python 版本的版本的所有检查make test-all-versions在 docker 容器中运行所有支持的 Python 版本的版本的所有检查
使用 https://github.com/nektos/act
如果拉取请求包含几个应保留的有意义的提交,则使用“Rebase and merge”选项。否则,请使用“Squash and merge”。
每次通过 Github Actions 工作流推送 master 时,将自动创建新版本(变更日志、标签和 pypi 上传)。