feat : sts

This commit is contained in:
2024-10-30 16:31:13 +08:00
parent 6c44cd2825
commit d572ca9539
10 changed files with 208 additions and 12 deletions

View File

@@ -0,0 +1,66 @@
<?php
/**
* This service file is part of item.
*
* @author ctexthuang
* @contact ctexthuang@qq.com
*/
declare(strict_types=1);
namespace App\Service\ServiceTrait\Common;
use AlibabaCloud\SDK\Sts\V20150401\Models\AssumeRoleRequest;
use AlibabaCloud\SDK\Sts\V20150401\Sts;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use App\Lib\Log;
use Darabonba\OpenApi\Models\Config;
use Exception;
use Hyperf\Di\Annotation\Inject;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use function Hyperf\Config\config;
trait AliStsTrait
{
/**
* @var Log
*/
#[Inject]
protected Log $log;
/**
* 创建客户端
* @return Sts
*/
protected function createClient(): Sts
{
$config = new Config([
"accessKeyId" => config('ali.accessKeyId'),
"accessKeySecret" => config('ali.accessKeySecret')
]);
$config->endpoint = config('ali.sts_endpoint');
return new Sts($config);
}
/**
* 获取 ali sts 控制器
* @param $payload
* @return Sts|void
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function getAliStsControls($payload){
$client = self::createClient();
$assumeRoleRequest = new AssumeRoleRequest($payload);
$runtime = new RuntimeOptions([]);
try {
$client->assumeRoleWithOptions($assumeRoleRequest, $runtime);
return $client;
} catch (Exception $error) {
$this->log->error(__CLASS__.__FUNCTION__.'-'.__LINE__, [$error->getMessage()]);
}
}
}