我将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) 我面临着一个决定,是使用跨堆栈引用导出共享资源,还是使用嵌套堆栈按照 AWS CloudFormation 最佳实践重用通用模板模式。
但是,除了一些差异外,它们对我来说似乎相同:
Fn::ImportValue,模板在一个文件夹中。AWS::CloudFormation::Stack和TemplateURL。据我搜索,它们之间没有明显的优缺点。
我的目标是创建一个父堆栈是通过像一些核心变量stackName的孩子堆,那么孩子堆栈创建资源共享像他们之间的一些变量ARN或Policies使用stackName来命名自己的资源,如stackNameDynamoDBTable。
如何在Windows 10上为Git Bash创建别名?我需要创建一个项目文件夹的长路径的别名,所以每当我打开bash时我都不必一次又一次地输入它.我已经搜索了答案并尝试了几个"正确的答案",但到目前为止还没有一个对我有用.
它们包括:创建一个.bashrc或一些人建议.bashrc.(创建此文件后,我无法用它做任何事情.Windows说
找不到此项目这不再位于C:\中.验证项目的位置,然后重试.
)
echo alias='<path>' > .bashrc(我也试过>>)
我可以编辑文件.bashrc并在其中放置别名,但它们都不起作用.我已经尝试.gitconfig在我的主文件夹中编辑文件[别名] =''
每当我输入时结果相同cd <alias name>::
没有相应的文件和目录
我需要做的就是输入:cd,它会引导我〜/// ...
我正在使用此 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) 我正在尝试使用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 …如何使用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
我需要执行一个Terraform模板为我可以通过担任角色来访问的AWS账户配置基础架构。
我现在遇到的问题是,该AWS账户中没有IAM用户,因此我没有aws_access_key_id或aws_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
我正在尝试使用不同的配置文件运行 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上的用户名。FIRST_ACCOUNT …如何强制 AWS IAM 用户使用 MFA,但允许他们在首次登录时更改密码?
如果您遵循AWS 文档并强制执行 MFA,新用户在首次获得账户时将无法更改密码。
我知道您可以强制执行 MFA,也可以不强制执行 MFA ,并允许用户管理自己的密码和凭据。此外,AWS 有一种方法可以解决该问题,但不建议这样做:
此示例策略不允许用户在登录时重置密码。新用户和密码过期的用户可能会尝试这样做。您可以通过将 iam:ChangePassword 添加到语句 DenyAllExceptListedIfNoMFA 来允许此操作。但是,IAM 不建议这样做。允许用户在没有 MFA 的情况下更改密码可能会存在安全风险。
那么“推荐”的方式是什么呢?
这个问题也在AWS论坛上被问到,但没有真正的答案。
我知道这似乎是一个重复的问题,但我找到的答案均无效:
在我的.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"我的 …
amazon-s3 ×3
amazon-iam ×2
bash ×1
git ×1
javascript ×1
multi-factor-authentication ×1
node.js ×1
reactjs ×1
terraform ×1
typescript ×1