我有,
在东京地区.但我想把我的整个设置移到俄勒冈州.有没有可以用来做这个的工具?
错误地,这个问题在其中有"移动".但我期待这个工具能够做复制.
amazon-ec2 amazon-web-services ec2-ami amazon-elb aws-php-sdk
有没有办法获取 UserId 或又名 AWS 账户 ID?
我已检查文档,但无法找到(...或者可能它不存在...)返回 UserId 的方法调用。
我一直在尝试将AMI从我的AWS账户A(ap-southeast-2)迁移到账户B(us-east-1).
在我的帐户中,我已将启动权限授予我的帐户A.
但是,当我在代码下运行时,
$result = $this->destination_ec2_client->copyImage(
array(
'SourceRegion' => $this->source_region,
'SourceImageId' => $image_id,
'Name' => $amis[0]['Name']
));
Run Code Online (Sandbox Code Playgroud)
当我通过文档运行上面的代码时,调用应该从源区域复制AMI并将其复制到目标区域.
但是,最终输出是错误的.错误在AMI描述失败的控制台上显示.
State Reason: AMI ownership mismatch
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我是否正确理解了机制?
我已经搜索了如何将简单的ContentType元数据添加到AWS PHP SDK中的MultiPartUploader.该文档明确提及如何做到这一点的PutObject,但没有提及如何使用MultiPartUploader做到这一点.
我已经尝试了我可以在网上找到的每种方法,但没有任何工作,我的文件总是被设置为application/octet-stream.
有人对这个有经验么?这是我的代码:
$uploader = new MultipartUploader($this->s3, $local_path, [
'bucket' => env('AWS_BUCKET'),
'key' => $path .'/'. $filename,
'contentType' => 'video/mp4', // have tried this
'metaData' => [ // have tried this (all well as all variations of caps)
'contentType' => 'video/mp4',
]
]);
do
{
try
{
$result = $uploader->upload();
}
catch (MultipartUploadException $e)
{
$uploader = new MultipartUploader($this->s3, $local_path, [
'state' => $e->getState(),
]);
}
}
while (!isset($result));
Run Code Online (Sandbox Code Playgroud)
通过MultiPartUploader类阅读后,它看起来像contentType中应自动设置的,但它没有被设置.
我正在使用SDK的v3
任何建议将不胜感激!
我安装了AWS PHP SDK并尝试使用SES.我的问题是,它(显然)~/.aws/credentials无论我做什么都试图阅读.我目前有这个代码:
$S3_AK = getenv('S3_AK');
$S3_PK = getenv('S3_PK');
$profile = 'default';
$path = '/home/franco/public/site/default.ini';
$provider = CredentialProvider::ini($profile, $path);
$provider = CredentialProvider::memoize($provider);
$client = SesClient::factory(array(
'profile' => 'default',
'region' => 'us-east-1',
'version' => "2010-12-01",
'credentials' => [
'key' => $S3_AK,
'secret' => $S3_PK,
]
));
Run Code Online (Sandbox Code Playgroud)
我仍然得到"无法读取来自〜/ .aws/credentials的凭据"错误(过了一段时间).
当然,我尝试了'凭证'=> $提供商,这是一个想法,但由于它不起作用我恢复了硬编码凭证.我已经抛弃了$ S3_AK和$ S3_PK并且它们很好,我实际上正在为S3使用它们,但是我有Zend的包装器.我已经尝试了〜/ .aws/credentials(没有".ini")来获得相同的结果.这两个文件都拥有777权限.
奇怪的信息:我必须将内存限制设置为-1,这样就可以var_dump异常.异常的html大约是200mb.
我更喜欢使用环境变量,尽管凭证文件很好.我只是不明白为什么它似乎试图读取文件,即使我已经硬编码凭证.
编辑:所以一位朋友告诉我这个,我删除了配置文件,并修改了try/catch,发现客户端似乎是正确创建的,错误来自于尝试实际发送电子邮件.
php zend-framework amazon-web-services amazon-ses aws-php-sdk
尝试使用适用于 PHP 的 AWS 开发工具包来列出存储桶,但在设置 S3Client 后我不断收到此错误,如下所示:
<?php
require getcwd() . '/aws.phar' /*v3 of the SDK*/;
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
$credentials = new Aws\Credentials\Credentials('I put my', 'credentials here');
$s3 = new Aws\S3\S3Client([
'region' => 'us-east-1', /*also tried different regions*/
'version' => '2006-03-01', /*also tried latest*/
'credentials' => $credentials /*have also tried putting credentials here*/
]);
$s3->listBuckets(); /*still the same error even if I remove this line */ ?>
Run Code Online (Sandbox Code Playgroud)
如果我至少没有填写区域、版本和凭据选项,SDK 实际上会返回一个错误,告诉我填写它们。这是上面代码返回的错误:
致命错误:未捕获错误:调用 phar:///var/www/mail/aws.phar/JmesPath/Lexer.php:343 中未定义的函数 JmesPath\mb_strlen() 堆栈跟踪:#0 phar:///var/ www/mail/aws.phar/JmesPath/Parser.php(76): JmesPath\Lexer->tokenize() #1 phar:///var/www/mail/aws.phar/JmesPath/AstRuntime.php(42) …
我想在 laravel v7 中使用 aws sdk 来使用 AWS QLDB 客户端 我已遵循此处编写的所有过程。我收到这个错误
Aws\Laravel\AwsServiceProvider::class 未找到
我正在使用Amazon AWS SDK for PHP(即2.7.16版)将文件上传到S3存储桶.如何为http/tcp操作(连接,上传等)设置超时?虽然我已经google了很多,但我无法弄清楚如何.
我正在使用的示例代码:
$awsS3Client = Aws\S3\S3Client::factory(array(
'key' => '...',
'secret' => '...'
));
$awsS3Client->putObject(array(
'Bucket' => '...',
'Key' => 'destin/ation.file',
'ACL' => 'private',
'Body' => 'content'
));
Run Code Online (Sandbox Code Playgroud)
所以我想在putObject()通话时设置超时.
谢谢!
我一直在使用AWS PHP SDK,除了IAM角色和权限之外,我似乎得到了所有东西.
:是否有人可以在IAM角色是如何工作的,并解释下列条款最简单的术语解释给我听StatementId,Action,ARN而且最重要的Principal用简单的英语?
为了让您了解我的困惑,这是我最近遇到的一个问题.我正在尝试创建一个API网关,其中Resource的方法触发Lambda函数.直到我复制粘贴这一点它才能工作:
$lambdaClient->addPermission([
'FunctionName' => 'fn name',
'StatementId' => 'ManagerInvokeAccess',
'Action' => 'lambda:InvokeFunction',
'Principal' => 'apigateway.amazonaws.com',
]);
Run Code Online (Sandbox Code Playgroud)
但是在其他一些帖子中有人建议使用以下内容:
const permissions = {
FunctionName: target,
StatementId: 'api-gateway-execute',
Action: 'lambda:InvokeFunction',
Principal: 'apigateway.amazonaws.com',
SourceArn: 'arn:aws:execute-api:' + nconf.get('awsRegion') + ':' + nconf.get('awsAccountId') + ':' + nconf.get('apiGatewayId') + '/*'};
Run Code Online (Sandbox Code Playgroud)
为什么第一个不包含任何帐户信息但第二个呢?还有另一个人粘贴了一些完全不同的东西来为他工作.在最后一个例子中有很多键(比如"Fn :: Join"),我甚至不知道从哪里开始以及它做什么.
如何找出在哪里找到这些政策?我们只是从某个地方复制粘贴它们是否有办法确定它们.如果是这样,必须始终指定哪些键.
任何帮助将不胜感激,因为我现在完全糊涂了.
根据此文档,DynamoDB 支持映射 (M) 和列表 (L) 类型,但是当我尝试创建具有 (L) 类型的表时,出现错误:
ValidationException(客户端):检测到 1 个验证错误:“attributeDefinitions.2.member.attributeType”处的值“L”未能满足约束:成员必须满足枚举值集:[B、N、S]
将ThreadReplyIds属性添加到表信息后会发生这种情况:
[
'AttributeDefinitions' => [
[
'AttributeName' => 'UserId',
'AttributeType' => 'N',
],
[
'AttributeName' => 'ThreadReplyIds', // <<---
'AttributeType' => 'L',
],
[
'AttributeName' => 'Title',
'AttributeType' => 'S',
],
],
'KeySchema' => [
[
'AttributeName' => 'UserId',
'KeyType' => 'HASH',
],
[
'AttributeName' => 'Title',
'KeyType' => 'RANGE',
],
],
'ProvisionedThroughput' => [
'ReadCapacityUnits' => 5,
'WriteCapacityUnits' => 5,
],
'TableName' => 'Thread', …Run Code Online (Sandbox Code Playgroud) aws-php-sdk ×10
php ×5
amazon-ec2 ×3
amazon-s3 ×2
amazon-elb ×1
amazon-iam ×1
amazon-qldb ×1
amazon-ses ×1
aws-sdk ×1
ec2-ami ×1
laravel ×1