小编Vie*_*iet的帖子

反应路由器在aws s3存储桶中不起作用

我将React网站build/文件夹部署到AWS S3存储桶中.

如果我去www.mywebsite.com,它可以工作,如果我点击a标签去项目和关于页面,它会引导我到正确的页面.但是,如果我复制并发送页面网址或直接转到类似的链接:www.mywebsite.com/projects,则返回404.

这是我的App.js代码:

const App = () => (
    <Router>
        <div>
            <NavBar/>
            <Switch>
                <Route exact path="/" component={Home}/>
                <Route exact path="/projects" component={Projects}/>
                <Route exact path="/about" component={About}/>
                <Route component={NoMatch}/>
            </Switch>
        </div>
    </Router>
);
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services reactjs

24
推荐指数
11
解决办法
9149
查看次数

CloudFormation 跨堆栈与嵌套堆栈

我面临着一个决定,是使用跨堆栈引用导出共享资源,还是使用嵌套堆栈按照 AWS CloudFormation 最佳实践重用通用模板模式

但是,除了一些差异外,它们对我来说似乎相同:

  • 跨堆栈使用Fn::ImportValue,模板在一个文件夹中。
  • 嵌套堆栈必须在 S3 中,使用类型AWS::CloudFormation::StackTemplateURL

据我搜索,它们之间没有明显的优缺点。

我的目标是创建一个父堆栈是通过像一些核心变量stackName孩子堆,那么孩子堆栈创建资源共享像他们之间的一些变量ARNPolicies使用stackName来命名自己的资源,如stackNameDynamoDBTable

amazon-web-services aws-cloudformation

9
推荐指数
1
解决办法
3340
查看次数

创建别名Git Bash Windows 10

如何在Windows 10上为Git Bash创建别名?我需要创建一个项目文件夹的长路径的别名,所以每当我打开bash时我都不必一次又一次地输入它.我已经搜索了答案并尝试了几个"正确的答案",但到目前为止还没有一个对我有用.

它们包括:创建一个.bashrc或一些人建议.bashrc.(创建此文件后,我无法用它做任何事情.Windows说

找不到此项目这不再位于C:\中.验证项目的位置,然后重试.

) echo alias='<path>' > .bashrc(我也试过>>)

我可以编辑文件.bashrc并在其中放置别名,但它们都不起作用.我已经尝试.gitconfig在我的主文件夹中编辑文件[别名] =''

每当我输入时结果相同cd <alias name>::

没有相应的文件和目录

我需要做的就是输入:cd,它会引导我〜/// ...

git bash

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

Cloudformation:错误:成员长度必须小于或等于 20

我正在使用此 CloudFormation 模板创建 Cognito 用户池:

{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Template creates AWS Cognito UserPool.",
    "Resources": {
        "CognitoUserPool": {
            "Type": "AWS::Cognito::UserPool",
            "Properties": {
                "Policies": {
                    "PasswordPolicy": {
                        "MinimumLength": 8,
                        "RequireUppercase": true,
                        "RequireLowercase": true,
                        "RequireNumbers": true,
                        "RequireSymbols": true
                    }
                },
                "Schema": [
                    {
                        "Name": "sub",
                        "AttributeDataType": "String",
                        "DeveloperOnlyAttribute": false,
                        "Mutable": false,
                        "Required": true,
                        "StringAttributeConstraints": {
                            "MinLength": "1",
                            "MaxLength": "2048"
                        }
                    },
                    {
                        "Name": "name",
                        "AttributeDataType": "String",
                        "DeveloperOnlyAttribute": false,
                        "Mutable": true,
                        "Required": false,
                        "StringAttributeConstraints": {
                            "MinLength": "0",
                            "MaxLength": "2048"
                        }
                    },
                    {
                        "Name": …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation amazon-cognito

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

AWS CodeBuild buildspec.yml递归获取所有文件和子文件夹

我正在尝试使用AWS CodeBuild将所有文件和子文件夹放在嵌套public文件夹中,并使用CodePipeline部署到S3存储桶。我能够将它们挂在一起,但是努力配置buildspec.yml文件以获取所需的输出。

我的文件夹结构:

<path>/public/

??? 404.html
??? css
?   ??? ...
??? fonts
?   ??? bootstrap
?   ?   ??? ...
?   ??? icomoon
?   ?   ??? icomoon
?   ?   ?   ??? ...
?   ??? simple-line-icons
?       ??? ...
??? images
?   ??? ...
??? index.html
??? index.xml
??? js
?   ??? ...
??? tags
    ??? index.xml
Run Code Online (Sandbox Code Playgroud)

我需要将文件夹中的所有内容(包括子文件夹)public放入S3存储桶的根目录中。

到目前为止,我已经尝试在这里这里这里关注文档。我试过使用:

  • **/*以便以递归方式将所有内容保存在文件夹中,public但S3存储桶将具有该文件夹的路径,因此index.html不在根目录中。
  • discard-paths: yes要删除public …

amazon-s3 amazon-web-services aws-codebuild

6
推荐指数
2
解决办法
2941
查看次数

AWS 使用 CodePipeline 中的 CodeBuild 删除 S3 中的文件

如何使用CodeBuild的文件删除S3 存储桶中不需要的文件作为CodePipeline 中管道的输出?buildspec.yml

例如:

buildGitHub 存储库的文件夹放在指定的 S3 存储桶中,因此该存储桶可以用作静态网站。

我之前将一个文件推送到我不再需要的存储桶中。buildspec.yml在将管道的工件推送到存储桶之前,如何使用文件“清理”存储桶?

一个示例buildspec.yml文件:

version: 0.2

phases:
  build:
    commands:
      - mkdir build-output
      - find . -type d -name public -exec cp -R {} build-output \;
      - find . -mindepth 1 -name build-output -prune -o -exec rm -rf {} +
  post_build:
    commands:
      - mv build-output/**/* ./
      - mv build-output/* ./
      - rm -R build-output
artifacts:
  files:
    - '**/*'
Run Code Online (Sandbox Code Playgroud)

应该命令:

rm -rf *
Run Code Online (Sandbox Code Playgroud)

在这样的 …

amazon-s3 amazon-web-services aws-codepipeline aws-codebuild

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

通过AWS担任Terraform的执行角色

我需要执行一个Terraform模板为我可以通过担任角色来访问的AWS账户配置基础架构。

我现在遇到的问题是,该AWS账户中没有IAM用户,因此我没有aws_access_key_idaws_secret_access_key来在中设置另一个命名配置文件~/.aws/credentials。当我运行command时terraform apply,模板将为我的帐户而不是其他帐户创建基础结构。

如何使用具有访问另一个AWS账户服务角色的账户运行Terraform模板?

这是我的Terraform文件:

# Input variables
variable "aws_region" {
    type = "string"
    default = "us-east-1"
}

variable "pipeline_name" {
    type = "string"
    default = "static-website-terraform"
}

variable "github_username" {
    type = "string"
    default = "COMPANY"
}

variable "github_token" {
    type = "string"
}

variable "github_repo" {
    type = "string"
}

provider "aws" {
    region = "${var.aws_region}"
    assume_role {
        role_arn = "arn:aws:iam::<AWS-ACCOUNT-ID>:role/admin"
        profile = "default"
    }
}

# CodePipeline resources
resource …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-codepipeline terraform-provider-aws

6
推荐指数
2
解决办法
2091
查看次数

无法切换 AWS 配置文件 CLI,但可以在控制台中进行

我正在尝试使用不同的配置文件运行 AWS CLI 命令:

.aws$ cat config 
[default]
region = us-east-1
output = json

[profile secondaccount]
role_arn = arn:aws:iam::<SECOND_ACCOUNT_ID>:role/admin
source_profile = default
Run Code Online (Sandbox Code Playgroud)
.aws$ cat credentials 
[default]
aws_access_key_id = ID
aws_secret_access_key = KEY
Run Code Online (Sandbox Code Playgroud)

SECOND_ACCOUNT有有信任关系,允许从任何用户管理员角色(访问所有资源),FIRST_ACCOUNT假设它。

"Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<FIRST_ACCOUNT>:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "Bool": {
          "aws:MultiFactorAuthPresent": "true"
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

我的帐户FIRST_ACCOUNT也有承担角色的政策:

"Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*"
        }
    ]
Run Code Online (Sandbox Code Playgroud)
  • 可以使用控制台切换角色
  • 我试图将策略直接附加到我在FIRST_ACCOUNTsts:assumeRole上的用户名。
  • 我试图从附上我的用户ARNFIRST_ACCOUNT …

amazon-web-services amazon-iam

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

AWS IAM 强制 MFA 但允许首次更改密码

如何强制 AWS IAM 用户使用 MFA,但允许他们在首次登录时更改密码?

如果您遵循AWS 文档并强制执行 MFA,新用户在首次获得账户时将无法更改密码。

我知道您可以强制执行 MFA,也可以强制执行 MFA ,并允许用户管理自己的密码和凭据。此外,AWS 有一种方法可以解决该问题,但不建议这样做:

此示例策略不允许用户在登录时重置密码。新用户和密码过期的用户可能会尝试这样做。您可以通过将 iam:ChangePassword 添加到语句 DenyAllExceptListedIfNoMFA 来允许此操作。但是,IAM 不建议这样做。允许用户在没有 MFA 的情况下更改密码可能会存在安全风险。

那么“推荐”的方式是什么呢?

这个问题也在AWS论坛上被问到,但没有真正的答案。

amazon-web-services amazon-iam multi-factor-authentication

5
推荐指数
1
解决办法
2056
查看次数

在 TypeScript 中导入 fs

我知道这似乎是一个重复的问题,但我找到的答案均无效:

在我的.ts文件中:

import * as fs from 'fs'; // error: SyntaxError: Unexpected token *
// OR
import fs from 'fs'; // error:
// import fs from 'fs';
//        ^^
// SyntaxError: Unexpected identifier

// OR

import {fs} from 'fs'; // error: module '"fs"' has no exported member 'fs'.ts(2305)


const data: [string, number] = [['one', 1],['two',2]];
function modifyThis(data: any) {
    return  data.map((element: any) => {
        element[1] = 0;
        return element;
    });
}
fs.writeFileSync('./data.txt', modifyThis(data), 'utf8');
Run Code Online (Sandbox Code Playgroud)

我确实有"@types/node": "^12.0.0"我的 …

node.js typescript

5
推荐指数
2
解决办法
7626
查看次数