private function getRoleNameFromMeta()

in src/Providers/EcsRamRoleCredentialsProvider.php [176:207]


    private function getRoleNameFromMeta()
    {
        $options = Request::commonOptions();
        $options['read_timeout'] = $this->readTimeout;
        $options['connect_timeout'] = $this->connectTimeout;

        $metadataToken = $this->getMetadataToken();
        if (!is_null($metadataToken)) {
            $options['headers']['X-aliyun-ecs-metadata-token'] = $metadataToken;
        }

        $result = Request::createClient()->request(
            'GET',
            'http://100.100.100.200/latest/meta-data/ram/security-credentials/',
            $options
        );

        if ($result->getStatusCode() === 404) {
            throw new InvalidArgumentException('The role name was not found in the instance' . (string) $result);
        }

        if ($result->getStatusCode() !== 200) {
            throw new RuntimeException('Error retrieving role name from result: ' . (string) $result);
        }

        $role_name = (string) $result;
        if (!$role_name) {
            throw new RuntimeException('Error retrieving role name from result is empty');
        }

        return $role_name;
    }