Amazon EC2 не работает с пользовательскими данными php - PullRequest
0 голосов
/ 21 января 2012

Я запускаю экземпляр Ubuntu EC2 с моим PHP-кодом и передаю ему пользовательские данные.Я не являюсь владельцем этого экземпляра ... но они предоставляют ему доступ на уровне пользователя.

Сначала я попытался выполнить определенное задание, передавая пользовательские данные, но, похоже, он не работал.

Я сделал это очень просто и отправил "touch test.txt" в качестве пользовательских данных.Экземпляр был запущен правильно, но файл был создан не так, как мне кажется.

Я что-то пропустил?Я проверил, что файл не был создан с использованием ssh 'для экземпляра.Во-первых, я не был в роли пользователя root.Повлияет ли это на что-нибудь?

<?php
error_reporting(-1);
header("Content-type: text/plain; charset=utf-8");
require_once '../sdk.class.php';
// Instantiate the class
$ec2 = new AmazonEC2();
$userdata2="touch hi".".txt";
echo $userdata2;
$response = $ec2->run_instances('ami-5f21e236', 1, 1,
array('KeyName' => 'radix2'),
array('UserData' => $userdata2),
array('InstanceType' => 'm1.small')
);
var_dump($response->isOK());
?>

Спасибо за помощь, Эрик

1 Ответ

2 голосов
/ 21 января 2012

Если вы пытаетесь запустить свой код как скрипт пользовательских данных, вам нужно запустить пользовательские данные с двумя символами #!

Например, ваша сенсорная команда может быть:

#!/bin/bash
touch /tmp/hello-world.txt

Я не программист PHP, но я думаю, что это может сработать, основываясь на моих исследованиях:

#!/usr/bin/php
<?php
[...your code here...]
?>

Вот статья, в которой я представил концепцию сценариев пользовательских данных:

http://alestic.com/2009/06/ec2-user-data-scripts

Он был включен в пакет облачной инициализации Ubuntu, который используется рядом дистрибутивов AMI, включая Ubuntu и Amazon Linux.

cloud-init имеет несколько более гибких способов указания вещей при запуске, но метод shabang (#!) - это простой способ запустить любой скрипт при первой загрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...