Terraform可以配置自定义S3端点,似乎localstack可以为S3,SES,Cloudformation和其他少数服务创建本地堆栈.
问题是在Terraform配置中写什么来使用localstack的S3端点?
在docker中使用localstack-compose主要是为了模仿S3.
我知道我可以创建桶,这不是问题.我想做的是在运行docker-compose时自动创建存储桶.
是否已为localstack构建了一些东西?
LocalStack很整洁,但很难找到它的文档.我无法访问连接到Lambda函数的API网关代理端点.
我能想到的唯一事情是当我为网关进行put-integration时,我不知道如何处理凭证参数(假设这是100%本地...我没有使用真正的AWS账户)所以我现在留下评论:
aws --endpoint-url=http://localhost:4567 apigateway \
put-integration \
--region us-west-2 \
--rest-api-id 0091232159 \
--resource-id 3732709762 \
--http-method ANY \
--type AWS_PROXY \
--integration-http-method POST \
--uri arn:aws:lambda:us-west-2:000000000000:function:PostProposal \
#--credentials arn:aws:iam::123456789012:role/apigAwsProxyRole
Run Code Online (Sandbox Code Playgroud)
我的同事发现了一个线程,听起来好像是LocalStack中的一个错误:
https://github.com/atlassian/localstack/issues/129
无论如何,这是我的API在我做的时候的样子aws --endpoint-url=http://localhost:4567 apigateway get-resources --rest-api-id 0091232159
:
{
"items": [
{
"id": "3312801A-ZA-Z6",
"path": "/",
"resourceMethods": {
"GET": {}
}
},
{
"id": "3732709762",
"parentId": "3312801A-ZA-Z6",
"pathPart": "{proxy+}",
"path": "/{proxy+}",
"resourceMethods": {
"GET": {},
"ANY": {
"httpMethod": "ANY",
"authorizationType": "NONE",
"methodIntegration": {
"type": "AWS_PROXY",
"httpMethod": "ANY", …
Run Code Online (Sandbox Code Playgroud) 我一直在使用localstack来针对本地开发服务。我刚刚通过运行他们的码头工人形象docker run --rm -p 4567-4583:4567-4583 -p 8080:8080 localstack/localstack
然后,我手动运行一个小脚本来设置我的S3存储桶,SQS队列等。
现在,我想让其他人更容易做到这一点,所以我想只添加一个Dockerfile和docker-compose.yml文件。不幸的是,当我尝试启动并运行它时,使用时出现docker-compose up
一个错误,即安装脚本中的命令无法连接到localstack服务。
make_bucket failed: s3://localbucket Could not connect to the endpoint URL: "http://localhost:4572/localbucket"
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM localstack/localstack
#since this is just local dev set up, localstack doesn't require
anything specific here.
ENV AWS_DEFAULT_REGION='[useast1]'
ENV AWS_ACCESS_KEY_ID='[lloyd]'
ENV AWS_SECRET_ACCESS_KEY='[christmas]'
COPY bin/localSetup.sh /localSetup.sh
COPY fixtures/notifications.json /notifications.json
RUN ["chmod", "+x", "/localSetup.sh"]
RUN pip install awscli
# expose service & web dashboard ports
EXPOSE 4567-4582 8080
ENTRYPOINT ["/localSetup.sh"]
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: '3'
services:
localstack:
build: …
Run Code Online (Sandbox Code Playgroud) 是否有类似于适用于AWS的LocalStack的 Azure 模拟框架?请理解,我不是在寻找SDK模拟,而是在资源堆栈模拟。
如此之多,我可以用项目中的实际Azure资源替换本地Azure堆栈的配置,并且功能将保持不变。很像它与Localstack一起工作的方式。
我发现Azure Cloud Fabric最接近于此,但它与Visual Studio IDE紧密结合。
我已经在本地安装了localstack。使用以下docker版本。
Docker版本:-18.09.1。
在我的mac电脑上也创建了一个tmp目录。
TMPDIR = / private $ TMPDIR
在没有docker版本的情况下,localstack可以正常工作。我在编写测试用例时,以为启动docker容器并运行我的测试用例。
这是我的日志输出。你能帮我什么可能是错的..
localstack start --docker
Starting local dev environment. CTRL-C to quit.
docker run -it -e LOCALSTACK_HOSTNAME="localhost" -p 8080:8080 -p 443:443 -p 4567-4584:4567-4584 -p 4590-4593:4590-4593 -v "/private/var/folders/_t/t3f89j5n6r1cdsztj2pc9rg00000gq/T/localstack:/tmp/localstack" -v "/var/run/docker.sock:/var/run/docker.sock" -e DOCKER_HOST="unix:///var/run/docker.sock" -e HOST_TMP_FOLDER="/private/var/folders/_t/t3f89j5n6r1cdsztj2pc9rg00000gq/T/localstack" "localstack/localstack"
2019-02-15 19:40:44,638 CRIT Supervisor running as root (no user in config file)
2019-02-15 19:40:44,641 INFO supervisord started with pid 1
2019-02-15 19:40:45,646 INFO spawned: 'dashboard' with pid 8
2019-02-15 19:40:45,649 INFO spawned: 'infra' with pid 9
(. …
Run Code Online (Sandbox Code Playgroud) 我已经看到AWS最近为无服务器应用程序发布了AWS SAM Local。我发现LocalStack非常相似,我现在使用它来运行测试,并且看不到很多差异,因为它们都支持几乎相同的服务。两者之间有什么主要区别吗?
我想为我的应用程序运行功能测试,该应用程序尝试将消息发布到AWS SNS。我尝试了LocalStack,发现它可以完成我在本地模拟和发布消息所需的一切。但是我的应用程序将amazon sdk客户端用于java,当我在本地运行它时,它仍然尝试将请求发布到亚马逊区域而不是LocalStack
确保应用程序与本地堆栈而不是与AWS URL交互的配置是什么?我们可以在AWS config中指定端点URL吗?我发现这是AWS CLI https://github.com/aws/aws-cli/issues/1270中的一个开放问题
是否有人为此实施了任何解决方法?
所以我可以使用localstack通过以下命令配置本地s3存储桶
aws --endpoint-url=http://localhost:4572 s3 mb s3://mytestbucket
Run Code Online (Sandbox Code Playgroud)
我如何才能更改Java AWS开发工具包的配置,以便向该存储桶(而不是远程AWS s3)进行读写操作?
我看过配置,但找不到任何有形的东西