Open konstesting opened 1 year ago
С доками все так плохо, что пост @konstesting гугглится наряду с описаниями YC API. Так что добавлю свой примерчик для случая с serviceAccountJson file:
import (
"context"
"github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
ycsdk "github.com/yandex-cloud/go-sdk"
"github.com/yandex-cloud/go-sdk/iamkey"
)
func ycsdkApiFetch(ctx context.Context, folderId string) {
serviceAccountKeyJson := "example.json"
key, err := iamkey.ReadFromJSONFile(serviceAccountKeyJson)
if err != nil {
return err
}
creds, err := ycsdk.ServiceAccountKey(key)
if err != nil {
return err
}
cfg := ycsdk.Config{
Credentials: creds,
}
sdk, err := ycsdk.Build(ctx, cfg)
if err != nil {
return err
}
result, err := sdk.Compute().Instance().List(ctx, &compute.ListInstancesRequest{
FolderId: folderId,
})
if err != nil {
return err
}
for _, inst := range result.GetInstances() {
// some code
}
}
Не у всех есть возможность использовать персональный oauth токен и приходится работать с Яндекс облаком через корпоративную (федеративную) учётную запись. В связи с этим прошу расширить пример авторизации в YandexCloud через SDK разными способами, чтобы другие люди могли сэкономить время.
Мой пример: