AWS LambdaをPHPから実行したかった話
結論から
公式ドキュメントを見れば基本的にそんなにつまづかない。
実際のコード (軽くマスキング)
lambda.php
<?php
use Aws\Credentials\CredentialProvider;
use Aws\Lambda\LambdaClient;
use Aws\Lambda\Exception\LambdaException;
public function call_lambda () {
try {
$function_name = "function_name";
$provider = CredentialProvider::defaultProvider();
$client = LambdaClient::factory(array(
"region" => "region",
"version" => "version",
"credentials" => $provider,
));
$result = $client->invoke(array(
'FunctionName' => $function_name, // REQUIRED
'InvocationType' => 'Event',
'LogType' => 'Tail',
));
} catch (LambdaException $e) {
throw $e;
} catch (Exception $e) {
throw $e;
}
}
前提条件
aws configureでcredentialsが作成されている
参考サイト
http://dev.classmethod.jp/cloud/aws-cli-credential-config/
追記: 前提条件でaws configureとか書いたけどEC2上でPHPが動いてるのであれば、
EC2にIAMROLEが当たってればできるっぽい