标签: aws-powershell

“Get-ECRLoginCommand”未被识别为 cmdlet、函数、脚本文件或可操作程序的名称

我正在尝试从 AWS 下载 Docker 映像,并按照我正在运行的AWS 上的说明进行操作:

(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

Get-ECRLoginCommand : The term 'Get-ECRLoginCommand' is not recognized as the name of a cmdlet, function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

我该如何修复这个错误?我认为我需要安装该模块。

amazon-web-services aws-powershell

18
推荐指数
2
解决办法
2万
查看次数

AWS Powershell用于检索AWS账号

有谁知道如何使用AWS Powershell获取AWS账号?看起来没有可用的API.

powershell amazon-web-services aws-powershell

11
推荐指数
2
解决办法
2093
查看次数

如何将特定类型的所有文件上传到S3 Bucket?

当我这样做:

foreach ($f in (Get-ChildItem -filter "*.flv")){
    Write-S3Object -BucketName bucket.example -File $f.fullName -Key $f.name -CannedACLName PublicRead
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Write-S3Object :
At line:1 char:51
+  foreach ($f in (Get-ChildItem -filter "*.flv")){ Write-S3Object -BucketName xx. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...eS3ObjectCmdlet:WriteS3ObjectCmdlet) [Write-S3Objec
   t], InvalidOperationException
    + FullyQualifiedErrorId : Amazon.S3.AmazonS3Exception,Amazon.PowerShell.Cmdlets.S3.WriteS3ObjectCmdlet
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?有什么我可以做的来看到更多的错误,或者这只是一个语法问题?

如何使用PowerShell将所有特定文件类型上传到存储桶?

编辑:

我故意设置Set-DefaultAWSRegion了一个桶不在的区域,并得到了

Write-S3Object : The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. 
Run Code Online (Sandbox Code Playgroud)

作为一个错误消息,正如预期的那样,所以看起来它可以连接到存储桶,它知道它不在某个区域.

此外,如果我 …

powershell amazon-s3 amazon-web-services aws-powershell

8
推荐指数
1
解决办法
8416
查看次数

在Powershell中,我如何获得本地zip文件的Base64encoded内存流?

我一直在尝试使用AWS Update-LMFunctionCode将我的文件部署到AWS中的现有lambda函数.

与Publish-LMFunction不同,我只能提供zipFile(-FunctionZip)的路径,Update-LMFunction需要一个用于其-Zipfile参数的内存流.

有一个例子将本地zipfile从磁盘加载到一个有效的内存流?我的初始调用是收到文件无法解压缩的错误...

$deployedFn =  Get-LMFunction -FunctionName $functionname
        "Function Exists - trying to update"
        try{
            [system.io.stream]$zipStream = [system.io.File]::OpenRead($zipFile)
        [byte[]]$filebytes = New-Object byte[] $zipStream.length
        [void] $zipStream.Read($filebytes, 0, $zipStream.Length)
            $zipStream.Close()
            "$($filebytes.length)"
        $zipString =  [System.Convert]::ToBase64String($filebytes)
        $ms = new-Object IO.MemoryStream
        $sw = new-Object IO.StreamWriter $ms
        $sw.Write($zipString)
        Update-LMFunctionCode -FunctionName $functionname -ZipFile $ms
            }
        catch{
             $ErrorMessage = $_.Exception.Message
            Write-Host $ErrorMessage
            break
        }
Run Code Online (Sandbox Code Playgroud)

Powershell函数的文档在这里:http://docs.aws.amazon.com/powershell/latest/reference/items/Update-LMFunctionCode.html虽然它想要生活在一个框架中......

powershell amazon-web-services aws-powershell aws-lambda

8
推荐指数
1
解决办法
3570
查看次数

如何将文件从s3服务下载到本地文件夹

我要求将文件从简单存储服务下载到本地文件夹,并计算本地文件夹中的no.of文件并检查简单存储服务,然后发送包含文件数量的邮件.

我试图从简单的存储服务下载文件,但我收到的错误就像get-s3object commandnotfoundexception.我该如何解决这个问题?

代码参考我已经采取

# Your account access key - must have read access to your S3 Bucket
$accessKey = "YOUR-ACCESS-KEY"
# Your account secret access key
$secretKey = "YOUR-SECRET-KEY"
# The region associated with your bucket e.g. eu-west-1, us-east-1 etc. (see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions)
$region = "eu-west-1"
# The name of your S3 Bucket
$bucket = "my-test-bucket"
# The folder in your bucket to copy, including trailing slash. Leave blank to copy the entire bucket
$keyPrefix = "my-folder/"
# …
Run Code Online (Sandbox Code Playgroud)

powershell amazon-s3 amazon-web-services aws-powershell

8
推荐指数
3
解决办法
2万
查看次数

为什么 Set-SQSQueueAttribute 失败并出现“InvalidOperationException:参数策略值无效”错误?

这是我的问题,除了对 AWS 不熟悉之外。我接到的任务是将位于 US-East-1 到 US-West-2 的生产站点复制为灾难恢复站点。我在创建 SNS 警报时遇到问题。以下代码来自 AWS 示例,并使用我们的 JSON 导出中的策略。当我将其包含到我的主 PS 脚本中时,出现以下错误:

错误:

Set-SQSQueueAttribute:参数策略值无效。在行:37 字符:5 + Set-SQSQueueAttribute -QueueUrl $qURL -Attribute @{ Policy=$SNSpo ... + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息:无效操作:(亚马逊。 PowerShe...AttributeCmdlet:SetSQSQ ueueAttributeCmdlet) [Set-SQSQueueAttribute]、InvalidOperationException + ExcellentQualifiedErrorId :Amazon.SQS.AmazonSQSException、Amazon.PowerShell.Cmdlets.SQS。SetSQSQueueAttributeCmdlet

代码:

$qURL = New-SQSQueue -QueueName "Test-Queue"
$topicARN = New-SNSTopic -Name "Test-Topic" -Region "us-west-2"

$SNSpolicy = @"
{
     "Version": "2008-10-17",
     "Id": "__default_policy_ID",
     "Statement": [
          {
           "Sid": "__default_policy_ID",
           "Effect": "Allow",
           "Principal": {
                "AWS": "*"
          },
           "Action": [
                "SNS:Subscribe",
                "SNS:ListSubscriptionsByTopic",
                "SNS:DeleteTopic",
                "SNS:GetTopicAttributes",
                "SNS:Publish",
                "SNS:RemovePermission",
                "SNS:AddPermission",
                "SNS:Receive", …
Run Code Online (Sandbox Code Playgroud)

powershell amazon-s3 amazon-web-services aws-powershell

8
推荐指数
1
解决办法
2万
查看次数

发布临时凭证以使用AssumeRole,现有策略和唯一URL登录AWS管理控制台

我想向现有用户发布临时凭证,以允许他们访问AWS管理控制台,方法是为他们提供使用这些临时凭证创建的URL.

我正在关注通过AWS文档给出的书面示例:使用IAM查询API的示例代码

我编写了以下代码,在执行时不会出现任何错误,并且似乎返回会话令牌,这样我就可以正确地形成一个URL来登录.

以下是返回会话令牌和后续URL的代码:

$accessKeyId = 'accesskeyId' 
$secretAccessKey = 'secretaccessKey'
$region = 'us-east-1'

Set-AWSCredentials -AccessKey $accessKeyId -SecretKey $secretAccessKey

$role = Use-STSRole -RoleSessionName "testSTS" -RoleArn "arn:aws:iam::1234567890:role/adminAccess" -DurationInSeconds 900

$jsonSession = @"
{
    "sessionId": $([string]::Format("{0}", $role.Credentials.AccessKeyId)),
    "sessionKey": $([string]::Format("{0}", $role.Credentials.SecretAccessKey)),
    "sessionToken": $([string]::Format("{0}", $role.Credentials.SessionToken))
}
"@

Add-Type -AssemblyName System.Web
$Encode = [System.Web.HttpUtility]::UrlEncode($jsonSession)

$url = $([string]::Format("https://signin.aws.amazon.com/federation?Action=getSigninToken&Session={0}", $Encode))

$payload = Invoke-WebRequest -Uri $url | ConvertFrom-Json

$issuer = [System.Web.HttpUtility]::UrlEncode("https://1234567890.signin.aws.amazon.com")
$destination = [System.Web.HttpUtility]::UrlEncode("https://console.aws.amazon.com")
$signintoken = [System.Web.HttpUtility]::UrlEncode($payload.SigninToken)

$signInUrl = $([string]::Format("https://signin.aws.amazon.com/federation?Action=login&Issuer={0}&Destination={1}&SigninToken={2}", $issuer, $destination, $signintoken))

write-host $signInUrl
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我在网络浏览器中访问网址时,我收到以下错误"亚马逊网络服务登录:您的登录链接中的凭据无效.请与您的管理员联系."

这是我回复给我的网址的样子,显然我出于安全原因更改了accountid和real会话令牌:

https://signin.aws.amazon.com/federation?Action=login&Issuer=https%3a%2f%2f1234567890.signin.aws.amazon.com&Destination=https%3a%2f%2fconsole.aws.amazon.com&SigninToken=ygQQrk4MYJyX1k30Obmj8p3Clax5OaUzQbjIBQH- …

powershell amazon-web-services amazon-iam aws-powershell

7
推荐指数
1
解决办法
568
查看次数

使用PowerShell获取与amazon访问密钥相关的s3存储桶列表?

我已经尝试使用谷歌搜索如何检索与亚马逊访问密钥相关的可用s3存储桶列表,但要么我正在搜索错误的条款,要么我没有通过足够的结果.

我有一个访问密钥和密钥,但我不知道与帐户或IAM用户关联的存储桶名称.

如何使用Powershell和AWS Tools获取可用的存储桶名称列表?

powershell amazon-s3 amazon-web-services aws-powershell

6
推荐指数
1
解决办法
7407
查看次数

如何为系统用户分配AWS凭证?

我有一个Powershell脚本,可将审核日志上载到S3存储库。当我在登录时运行脚本时,脚本运行良好,但是我需要定义计划任务,并且该任务需要以SYSTEM用户身份运行。有人可以推荐一种方法,我可以向SYSTEM用户提供AWS凭证,以便它们不会以明文形式存储在计算机上吗?

aws-powershell

6
推荐指数
1
解决办法
562
查看次数

适用于Windows PowerShell源代码的AWS工具在哪里

我想扩展AWS PowerShell命令.许多AWS开发工具包都在GitHub上,例如AWS .NET SDK,而不是用于Windows PowerShell的AWS工具.

amazon-web-services aws-powershell

6
推荐指数
1
解决办法
363
查看次数