Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >S3桶名是如何在CloudFormation中派生的?

S3桶名是如何在CloudFormation中派生的?
EN

Stack Overflow用户
提问于 2021-12-22 07:49:08
回答 1查看 919关注 0票数 1

我有一个cloudformation template.js,它创建了一个桶。我不知道桶名是怎么组装的。

假设我的堆栈名是my-service,我将作为my-service-s3bucket-1p3s4szy5bomf创建桶名

  1. ,我想知道这个名字是如何派生出来的,

  1. ,我也想在最后去掉这个arn。-1p3s4szy5bomf
  2. Can --我跳过了最后的输出,不知道他们做了什么

template.js中的代码

代码语言:javascript
运行
AI代码解释
复制
var stackTemplate = {

    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "with S3",
    "Resources": {
        "S3Bucket": {
            "Type": "AWS::S3::Bucket",
            "DeletionPolicy": "Retain",
            "Properties": {},
            "Metadata": {
                "AWS::CloudFormation::Designer": {
                    "id": "bba483af-4ae6-4d3d-b37d-435f66c42e44"
                }
            }
        },
        "S3BucketAccessPolicy": {
            "Type": "AWS::IAM::Policy",
            "Properties": {
                "PolicyName": "S3BucketAccessPolicy",
                "Roles": [
                    {
                        "Ref": "IAMServiceRole"
                    }
                ],
                "PolicyDocument": {
                    "Version": "2012-10-17",
                    "Statement": [
                        {
                            "Effect": "Allow",
                            "Action": [
                                "s3:DeleteObject",
                                "s3:GetObject",
                                "s3:PutObject",
                                "s3:PutObjectAcl",
                                "s3:List*"
                            ],
                            "Resource": [
                                {
                                    "Fn::Sub": [
                                        "${S3BucketArn}",
                                        {
                                            "S3BucketArn": {
                                                "Fn::GetAtt": ["S3Bucket", "Arn"]
                                            }
                                        }
                                    ]
                                },
                                {
                                    "Fn::Sub": [
                                        "${S3BucketArn}/*",
                                        {
                                            "S3BucketArn": {
                                                "Fn::GetAtt": ["S3Bucket", "Arn"]
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        }
    },
    "Outputs": {
        "s3Bucket": {
            "Description": "The created S3 bucket.",
            "Value": {
                "Ref": "S3Bucket"
            },
            "Export": {
                "Name": {
                    "Fn::Sub": "${AWS::StackName}-S3Bucket"
                }
            }
        },
        "s3BucketArn": {
            "Description": "The ARN of the created S3 bucket.",
            "Value": {
                "Fn::GetAtt": ["S3Bucket", "Arn"]
            },
            "Export": {
                "Name": {
                    "Fn::Sub": "${AWS::StackName}-S3BucketArn"
                }
            }
        }
    }
};

stackUtils.assembleStackTemplate(stackTemplate, module);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 08:16:53

代码语言:javascript
运行
AI代码解释
复制
I want to know how this name was derived

如果您没有为桶指定名称,CloudFormation将根据模式CloudFormation生成一个新的名称

在文档https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3-bucket.html BucketName中,存储桶的名称。如果不指定名称,AWS CloudFormation将生成唯一ID,并使用该ID作为桶名。

代码语言:javascript
运行
AI代码解释
复制
I also want to get rid of that arn at the end. -1p3s4szy5bomf

您可以指定桶的名称,但是AWS重新建议让它空出来生成一个新的名称,以避免使用相同的名称创建(stackset.)以CloudFormation为例:

代码语言:javascript
运行
AI代码解释
复制
"Resources": {
        "S3Bucket": {
            "Type": "AWS::S3::Bucket",
            "DeletionPolicy": "Retain",
            "Properties": {
               "BucketName": "DesiredNameOfBucket" <== 
                },
            "Metadata": {
                "AWS::CloudFormation::Designer": {
                    "id": "bba483af-4ae6-4d3d-b37d-435f66c42e44"
                }
            }
        },

Can I skip Outputs at the end, Not sure what they do

它用于创建桶的信息、名称和ARN,如果需要,可以从模板中删除输出部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70451707

复制
相关文章
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.7K0
iOS开发中在指定的某些线程执行完之后去执行其他线程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/79139208
用户1451823
2018/09/13
1.2K0
iOS开发中在指定的某些线程执行完之后去执行其他线程
【漫画】finally到底是在return之前执行还是return之后执行?
比如说上面所示的代码,在try语句里面 i / 0 的话会抛出来异常,这样的话程序就在i / 0这里由于抛出了异常,所以程序不会继续往下去执行try包含的语句了。首先进入到catch语句里面,由于finally语句一定会执行,接下来就会执行finally中的语句,所以就得到了上面的执行结果。
乔戈里
2019/01/23
7320
Oracle——无法在查询中执行 DML 操作
create or replace function test_f(id varchar2) return varchar2 is Result varchar2(100); begin insert into sfcs_temp_17109 (sn)values(id);
_一级菜鸟
2019/09/10
4.5K0
Oracle——无法在查询中执行 DML 操作
vue/uniapp 如何让页面的 onLoad 在 onLaunch 之后执行[通俗易懂]
app.vue里的 onLaunch 中如果有异步方法(比如:登录),返回结果可能会在页面的 onLoad 之后,但 onLoad 中的方法需要登录回调的结果。
全栈程序员站长
2022/07/30
3.2K0
compareTo()方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158435.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
3550
关于compareTo使用的几种情况
String source = "A"; String tager = "B"; int i = source.compareTo(tager); System.out.println(i); //输入为 -1 String source = "B"; String tager = "B"; int i = source.compareTo(tager); System.out.println(i); //输出为 0 String source =
信铁寒胜
2020/07/31
5090
ReactDOM.render在react中执行之后发生了什么?
通常是如下图使用,在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null)。本文主要是将ReactDOM.render的执行流程在后续文章中会对创建更新的细节进行分析,文中的源代码部分为了方便阅读将__DEV__部分的代码移除掉了。
flyzz177
2022/12/08
7590
Java 堆栈信息对象 StackTraceElement,获取当前线程的执行方法
java.langStackTraceElement类保存了Java中线程中的方法栈信息:
青山师
2023/05/05
6670
Java finally 语句到底是在 return 之前还是之后执行?
今天跟大家分享下Java finally语句的知识。finally隐藏了这样的细节?
互扯程序
2019/11/01
1.2K0
python程序执行时间_用于在Python中查找程序执行时间的程序
The execution time of a program is defined as the time spent by the system to execute the task. As we all know any program takes some execution time but we don't know how much. So, don't worry, in this tutorial we will learn it by using the datetime module and also we will see the execution time for finding the factorial of a large number. A large number will be provided by the user and we have to calculate the factorial of a number, also we have to find the execution time of the factorial program. Before going to write the Python program, we will try to understand the algorithm.
用户7886150
2021/01/28
2.1K0
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:
bear_fish
2018/09/20
1.3K0
小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法
当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法。
蓓蕾心晴
2018/08/15
1.1K0
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?
挨踢小子部落阁
2019/08/05
8490
glut库更新旧程序无法完成编译问题描述
zhangrelay@LAPTOP-5REQ7K1L:~$ cd cppcode/Bouncing-Ball-Animation-master/src/
zhangrelay
2022/08/10
1.1K0
glut库更新旧程序无法完成编译问题描述
ReactDOM.render在react源码中执行之后发生了什么?
通常是如下图使用,在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null)。本文主要是将ReactDOM.render的执行流程在后续文章中会对创建更新的细节进行分析,文中的源代码部分为了方便阅读将__DEV__部分的代码移除掉了。
flyzz177
2022/09/30
5960
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:
乔戈里
2019/10/28
8080
ReactDOM.render在react源码中执行之后发生了什么?
通常是如下图使用,在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null)。本文主要是将ReactDOM.render的执行流程在后续文章中会对创建更新的细节进行分析,文中的源代码部分为了方便阅读将__DEV__部分的代码移除掉了。
flyzz177
2023/01/06
5920
Class 对象在执行引擎中的初始化过程
装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。
老马的编程之旅
2022/06/22
1.1K0
Class 对象在执行引擎中的初始化过程
Java中的compareTo方法详解
在Java编程中,有时候我们需要对对象进行比较和排序。为了实现这一目标,Java提供了一个非常有用的接口叫做Comparable,以及一个重要的方法compareTo。本文将详细解释什么是Comparable接口,以及如何使用compareTo方法来比较对象。
修己xj
2023/09/13
4700

相似问题

在表单验证之后执行功能

14

重写compareTo()方法的功能

35

在SIGTRAP之后,无法单步执行gdb中的程序

19

在CREATE INDEX之后更新统计信息?

05

在使用电子邮件执行signIn之后,无法使用firebase获取更新的配置文件信息

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档