Google Cloud Platform에서 사용하는 PHP

문서 보기

클라우드 네이티브 앱 제작, 확장성 있는 배포, 데이터 분석을 위한 PHP 도구

  • 확장형 웹 앱 및 API 빌드
  • 완전 관리형 MySQL, NoSQL, PostgreSQL 데이터베이스 액세스
  • 네이티브 라이브러리 지원을 통한 Google 머신러닝 API 사용
  • 확장 가능한 방식으로 컨테이너식 애플리케이션 실행
  • 원하는 프레임워크 또는 CMS 배포
매력적인 기능을 갖춘 Composer 패키지

Google Cloud Composer 패키지로 Google의 API와 서비스를 활용하고 코드 샘플을 테스트해 보세요.

Google Cloud Storage에 파일 업로드
Google BigQuery로 데이터 분석 수행
Stackdriver Logging에 로그 데이터 작성
Cloud Natural Language API로 텍스트 분석
Google Cloud Storage에 파일 업로드
1
설치
$ composer require google/cloud-storage
2
Google Cloud Platform 프로젝트 설정
  1. GCP Console에서 리소스 관리 페이지로 이동하고 프로젝트를 선택하거나 만듭니다.

    리소스 관리 페이지로 이동

  2. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인하세요.

    결제 사용 설정 방법 알아보기

  3. Cloud Storage API를 사용 설정합니다.

    API 사용 설정

3
코드 작성
use Google\Cloud\Storage\StorageClient;

/**
 * Upload a file.
 *
 * @param string $bucketName the name of your Google Cloud bucket.
 * @param string $objectName the name of the object.
 * @param string $source the path to the file to upload.
 *
 * @return Psr\Http\Message\StreamInterface
 */
function upload_object($bucketName, $objectName, $source)
{
    $storage = new StorageClient();
    $file = fopen($source, 'r');
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->upload($file, [
        'name' => $objectName
    ]);
    printf('Uploaded %s to gs://%s/%s' . PHP_EOL, basename($source), $bucketName, $objectName);
}
Google BigQuery로 데이터 분석 수행
1
설치
$ composer require google/cloud-bigquery
2
Google Cloud Platform 프로젝트 설정
  1. GCP Console에서 리소스 관리 페이지로 이동하고 프로젝트를 선택하거나 만듭니다.

    리소스 관리 페이지로 이동

  2. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인하세요.

    결제 사용 설정 방법 알아보기

  3. BigQuery API를 사용 설정합니다.

    API 사용 설정

3
코드 작성
require __DIR__ . '/vendor/autoload.php';

use Google\Cloud\BigQuery\BigQueryClient;

// get the project ID as the first argument
if (2 != count($argv)) {
    die("Usage: php stackoverflow.php YOUR_PROJECT_ID\n");
}

$projectId = $argv[1];

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$query = <<<ENDSQL
SELECT
  CONCAT(
    'https://stackoverflow.com/questions/',
    CAST(id as STRING)) as url,
  view_count
FROM `bigquery-public-data.stackoverflow.posts_questions`
WHERE tags like '%google-bigquery%'
ORDER BY view_count DESC
LIMIT 10;
ENDSQL;
$queryJobConfig = $bigQuery->query($query);
$queryResults = $bigQuery->runQuery($queryJobConfig);

if ($queryResults->isComplete()) {
    $i = 0;
    $rows = $queryResults->rows();
    foreach ($rows as $row) {
        printf('--- Row %s ---' . PHP_EOL, ++$i);
        printf('url: %s, %s views' . PHP_EOL, $row['url'], $row['view_count']);
    }
    printf('Found %s row(s)' . PHP_EOL, $i);
} else {
    throw new Exception('The query failed to complete');
}
Stackdriver Logging에 로그 데이터 작성
1
설치
$ composer require google/cloud-logging
2
Google Cloud Platform 프로젝트 설정
  1. GCP Console에서 리소스 관리 페이지로 이동하고 프로젝트를 선택하거나 만듭니다.

    리소스 관리 페이지로 이동

  2. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인하세요.

    결제 사용 설정 방법 알아보기

  3. Stackdriver Logging API를 사용 설정합니다.

    API 사용 설정

3
코드 작성
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Logging\LoggingClient;

# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';

# Instantiates a client
$logging = new LoggingClient([
    'projectId' => $projectId
]);

# The name of the log to write to
$logName = 'my-log';

# Selects the log to write to
$logger = $logging->logger($logName);

# The data to log
$text = 'Hello, world!';

# Creates the log entry
$entry = $logger->entry($text);

# Writes the log entry
$logger->write($entry);

echo 'Logged ' . $text;
Cloud Natural Language API로 텍스트 분석
1
설치
$ composer require google/cloud-language
2
Google Cloud Platform 프로젝트 설정
  1. GCP Console에서 리소스 관리 페이지로 이동하고 프로젝트를 선택하거나 만듭니다.

    리소스 관리 페이지로 이동

  2. Google Cloud Platform 프로젝트에 결제가 사용 설정되어 있는지 확인하세요.

    결제 사용 설정 방법 알아보기

  3. Cloud Natural Language API를 사용 설정합니다.

    API 사용 설정

3
코드 작성
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Language\LanguageClient;

# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';

# Instantiates a client
$language = new LanguageClient([
    'projectId' => $projectId
]);

# The text to analyze
$text = 'Hello, world!';

# Detects the sentiment of the text
$annotation = $language->analyzeSentiment($text);
$sentiment = $annotation->sentiment();

echo 'Text: ' . $text . '
Sentiment: ' . $sentiment['score'] . ', ' . $sentiment['magnitude'];
PHP 빠른 시작
신속한 문제 발견 및 디버깅

Google Stackdriver는 강력한 모니터링, 로깅, 진단 기능을 제공합니다. 클라우드 기반 애플리케이션의 상태, 성능, 가용성에 대한 통계를 제공하여 문제를 더 신속하게 찾아 해결할 수 있게 해 줍니다.

Google Stackdriver
Google Cloud Platform 및 AWS의 애플리케이션 통합 모니터링, 로깅, 진단
Stackdriver Error Reporting
Google Cloud Console에서 오류 알림을 받고 오류를 조사하는 과정 안내
Stackdriver 모니터링, 진단, 해결
이 동영상에서 Aja Hammerly는 Stackdriver를 사용하여 예시 앱의 몇 가지 미묘한 오류를 찾아 수정하고 Stackdriver를 프로젝트에서 사용하는 방법을 알려 드립니다.
자세히 알아보기
GCP 커뮤니티에서 PHP 알아보기

궁금한 점이나 의견이 있다면 커뮤니티에 가입하여 질문하거나 Google Cloud Platform에서 PHP 제작을 지원하는 Google 전문가와 직접 채팅해 보세요.